1fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org#!/usr/bin/env python
2fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
3159fe3f09a7398b3bf48200855888596c1b95110steveblock@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved.
4fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org# Use of this source code is governed by a BSD-style license that can be
5fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org# found in the LICENSE file.
6fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
7fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org"""
8fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgVerifies that targets have independent INTERMEDIATE_DIRs.
9fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org"""
10fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
11fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgimport TestGyp
12fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
13fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest = TestGyp.TestGyp()
14fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
15fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.run_gyp('test.gyp', chdir='src')
16fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.build('test.gyp', 'target1', chdir='src')
17fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org# Check stuff exists.
18fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgintermediate_file1 = test.read('src/outfile.txt')
19fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.must_contain(intermediate_file1, 'target1')
20fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
21fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgshared_intermediate_file1 = test.read('src/shared_outfile.txt')
22fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.must_contain(shared_intermediate_file1, 'shared_target1')
23fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
24fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.run_gyp('test2.gyp', chdir='src')
257de43b9540a23f600c1a41b22b4b1ef4dfde8926thakis@chromium.org# Force the shared intermediate to be rebuilt.
267de43b9540a23f600c1a41b22b4b1ef4dfde8926thakis@chromium.orgtest.sleep()
277de43b9540a23f600c1a41b22b4b1ef4dfde8926thakis@chromium.orgtest.touch('src/shared_infile.txt')
28fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.build('test2.gyp', 'target2', chdir='src')
29159fe3f09a7398b3bf48200855888596c1b95110steveblock@chromium.org# Check INTERMEDIATE_DIR file didn't get overwritten but SHARED_INTERMEDIATE_DIR
30fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org# file did.
31fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgintermediate_file2 = test.read('src/outfile.txt')
32fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.must_contain(intermediate_file1, 'target1')
33fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.must_contain(intermediate_file2, 'target2')
34fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
35fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgshared_intermediate_file2 = test.read('src/shared_outfile.txt')
36fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgif shared_intermediate_file1 != shared_intermediate_file2:
37fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org  test.fail_test(shared_intermediate_file1 + ' != ' + shared_intermediate_file2)
38fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
397de43b9540a23f600c1a41b22b4b1ef4dfde8926thakis@chromium.orgtest.must_contain(shared_intermediate_file1, 'shared_target2')
407de43b9540a23f600c1a41b22b4b1ef4dfde8926thakis@chromium.orgtest.must_contain(shared_intermediate_file2, 'shared_target2')
41fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.org
42fbcd968877bac98d0d6f5f61847c0232939562f4thakis@chromium.orgtest.pass_test()
43