diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /third_party/python/gyp/test/win/gyptest-link-restat-importlib.py | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/python/gyp/test/win/gyptest-link-restat-importlib.py')
-rw-r--r-- | third_party/python/gyp/test/win/gyptest-link-restat-importlib.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/win/gyptest-link-restat-importlib.py b/third_party/python/gyp/test/win/gyptest-link-restat-importlib.py new file mode 100644 index 0000000000..d249e0a6bd --- /dev/null +++ b/third_party/python/gyp/test/win/gyptest-link-restat-importlib.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +# Copyright (c) 2012 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Make sure we don't cause unnecessary builds due to import libs appearing +to be out of date. +""" + +from __future__ import print_function + +import TestGyp + +import os +import sys +import time + +if sys.platform == 'win32': + test = TestGyp.TestGyp(formats=['msvs', 'ninja']) + + if not os.environ.get('ProgramFiles(x86)'): + # TODO(scottmg) + print('Skipping test on x86, http://crbug.com/365833') + test.pass_test() + + CHDIR = 'importlib' + test.run_gyp('importlib.gyp', chdir=CHDIR) + test.build('importlib.gyp', test.ALL, chdir=CHDIR) + + # Delay briefly so that there's time for this touch not to have the + # timestamp as the previous run. + test.sleep() + + # Touch the .cc file; the .dll will rebuild, but the import libs timestamp + # won't be updated. + test.touch('importlib/has-exports.cc') + test.build('importlib.gyp', 'test_importlib', chdir=CHDIR) + + # This is the important part. The .dll above will relink and have an updated + # timestamp, however the import .libs timestamp won't be updated. So, we + # have to handle restating inputs in ninja so the final binary doesn't + # continually relink (due to thinking the .lib isn't up to date). + test.up_to_date('importlib.gyp', test.ALL, chdir=CHDIR) + + test.pass_test() |