17a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org#!/usr/bin/env python
27a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
37a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved.
47a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org# Use of this source code is governed by a BSD-style license that can be
57a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org# found in the LICENSE file.
67a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
77a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org"""
8fc18ffc05cce31c9315c07297e7605f0723bfc18scottmg@chromium.orgVerifies that the 'ProgramDatabaseFile' attribute in VCLinker is extracted
9fc18ffc05cce31c9315c07297e7605f0723bfc18scottmg@chromium.orgproperly.
107a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org"""
117a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
127a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.orgimport TestGyp
137a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
147a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.orgimport os
157a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.orgimport sys
167a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
177a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
187a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.orgif sys.platform == 'win32':
197a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  test = TestGyp.TestGyp(formats=['msvs', 'ninja'])
207a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  CHDIR = 'linker-flags'
217a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  test.run_gyp('program-database.gyp', chdir=CHDIR)
227a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  test.build('program-database.gyp', test.ALL, chdir=CHDIR)
237a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
247a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  def FindFile(pdb):
257a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org    full_path = test.built_file_path(pdb, chdir=CHDIR)
267a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org    return os.path.isfile(full_path)
277a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org
287a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  # Verify the specified PDB is created when ProgramDatabaseFile
297a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org  # is provided.
3010defb6b1dea70c51076dce765d2e359b7943de7noelallen@chromium.org  if not FindFile('name_outdir.pdb'):
317a9065df64cfbf8dd74a6d925d0df3ea7df78fdenoelallen@chromium.org    test.fail_test()
3210defb6b1dea70c51076dce765d2e359b7943de7noelallen@chromium.org  if not FindFile('name_proddir.pdb'):
3310defb6b1dea70c51076dce765d2e359b7943de7noelallen@chromium.org    test.fail_test()
3410defb6b1dea70c51076dce765d2e359b7943de7noelallen@chromium.org
3510defb6b1dea70c51076dce765d2e359b7943de7noelallen@chromium.org  test.pass_test()
36