1bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org#!/usr/bin/env python
2bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
3bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org# Copyright (c) 2014 Google Inc. All rights reserved.
4bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org# Use of this source code is governed by a BSD-style license that can be
5bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org# found in the LICENSE file.
6bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
7bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org"""
8bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.orgTest VCCLCompilerTool EnableEnhancedInstructionSet setting.
9bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org"""
10bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
11bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.orgimport TestGyp
12bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
13bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.orgimport os
14bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.orgimport sys
15bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
16bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.orgif sys.platform == 'win32':
17bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test = TestGyp.TestGyp()
18bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
19bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  CHDIR = 'compiler-flags'
20bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test.run_gyp('enable-enhanced-instruction-set.gyp', chdir=CHDIR)
21bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
22bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test.build('enable-enhanced-instruction-set.gyp', test.ALL, chdir=CHDIR)
23bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
24bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test.run_built_executable('sse_extensions', chdir=CHDIR,
25bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org                            stdout='/arch:SSE\n')
26bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test.run_built_executable('sse2_extensions', chdir=CHDIR,
27bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org                            stdout='/arch:SSE2\n')
28bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
29bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  # /arch:AVX introduced in VS2010, but MSBuild support lagged until 2012.
30bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  if os.path.exists(test.built_file_path('avx_extensions')):
31bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org    test.run_built_executable('no_extensions', chdir=CHDIR,
32bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org                              stdout='/arch:AVX\n')
33bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
34bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  # /arch:IA32 introduced in VS2012.
35bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  if os.path.exists(test.built_file_path('no_extensions')):
36bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org    test.run_built_executable('no_extensions', chdir=CHDIR,
37bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org                              stdout='/arch:IA32\n')
38bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org
39bc51b1c46401da3b05cffebfcb4116dc63110ca9grt@chromium.org  test.pass_test()
40