| Index: test/win/gyptest-link-stacksize.py
|
| diff --git a/test/win/gyptest-link-stacksize.py b/test/win/gyptest-link-stacksize.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2e952d2c73bb07130b9e40fab2829e3ecd3bbc32
|
| --- /dev/null
|
| +++ b/test/win/gyptest-link-stacksize.py
|
| @@ -0,0 +1,62 @@
|
| +#!/usr/bin/env python
|
| +
|
| +# Copyright (c) 2015 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 StackReserveSize and StackCommitSize settings are extracted properly.
|
| +"""
|
| +
|
| +import TestGyp
|
| +
|
| +import sys
|
| +
|
| +if sys.platform == 'win32':
|
| + test = TestGyp.TestGyp(formats=['msvs', 'ninja'])
|
| +
|
| + CHDIR = 'linker-flags'
|
| + test.run_gyp('stacksize.gyp', chdir=CHDIR)
|
| + test.build('stacksize.gyp', test.ALL, chdir=CHDIR)
|
| +
|
| + def GetHeaders(exe):
|
| + return test.run_dumpbin('/headers', test.built_file_path(exe, chdir=CHDIR))
|
| +
|
| + # Verify default sizes as reported by dumpbin:
|
| + # 100000h = 1MB
|
| + # 1000h = 4KB
|
| + default_headers = GetHeaders('test_default.exe')
|
| + if '100000 size of stack reserve' not in default_headers:
|
| + test.fail_test()
|
| + if '1000 size of stack commit' not in default_headers:
|
| + test.fail_test()
|
| +
|
| + # Verify that reserved size is changed, but commit size is unchanged:
|
| + # 200000h = 2MB
|
| + # 1000h = 4KB
|
| + set_reserved_size_headers = GetHeaders('test_set_reserved_size.exe')
|
| + if '200000 size of stack reserve' not in set_reserved_size_headers:
|
| + test.fail_test()
|
| + if '1000 size of stack commit' not in set_reserved_size_headers:
|
| + test.fail_test()
|
| +
|
| + # Verify that setting the commit size, without the reserve size, has no
|
| + # effect:
|
| + # 100000h = 1MB
|
| + # 1000h = 4KB
|
| + set_commit_size_headers = GetHeaders('test_set_commit_size.exe')
|
| + if '100000 size of stack reserve' not in set_commit_size_headers:
|
| + test.fail_test()
|
| + if '1000 size of stack commit' not in set_commit_size_headers:
|
| + test.fail_test()
|
| +
|
| + # Verify that setting both works:
|
| + # 200000h = 2MB
|
| + # 2000h = 8KB
|
| + set_both_headers = GetHeaders('test_set_both.exe')
|
| + if '200000 size of stack reserve' not in set_both_headers:
|
| + test.fail_test()
|
| + if '2000 size of stack commit' not in set_both_headers:
|
| + test.fail_test()
|
| +
|
| + test.pass_test()
|
|
|