18724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org#!/usr/bin/env python 28724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 38724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved. 48724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org# Use of this source code is governed by a BSD-style license that can be 58724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org# found in the LICENSE file. 68724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 78724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org""" Unit tests for the ninja.py file. """ 88724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 98724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgimport gyp.generator.ninja as ninja 108724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgimport unittest 118724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgimport StringIO 12510f520d4d41f80f87e65076f7792baad02bd4b8scottmg@chromium.orgimport sys 138724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgimport TestCommon 148724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 158724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 168724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgclass TestPrefixesAndSuffixes(unittest.TestCase): 178fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org def test_BinaryNamesWindows(self): 188fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org writer = ninja.NinjaWriter('foo', 'wee', '.', '.', 'build.ninja', '.', 198fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org 'build.ninja', 'win') 208fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org spec = { 'target_name': 'wee' } 218fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'executable'). 228fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org endswith('.exe')) 238fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). 248fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org endswith('.dll')) 258fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). 268fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org endswith('.lib')) 278724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 288fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org def test_BinaryNamesLinux(self): 298fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org writer = ninja.NinjaWriter('foo', 'wee', '.', '.', 'build.ninja', '.', 308fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org 'build.ninja', 'linux') 318fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org spec = { 'target_name': 'wee' } 328fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue('.' not in writer.ComputeOutputFileName(spec, 338fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org 'executable')) 348fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). 358fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org startswith('lib')) 368fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). 378fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org startswith('lib')) 388fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'shared_library'). 398fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org endswith('.so')) 408fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org self.assertTrue(writer.ComputeOutputFileName(spec, 'static_library'). 418fcfea42b6d343297e8b6b786d85fa5ad862fc30thakis@chromium.org endswith('.a')) 428724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org 438724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.orgif __name__ == '__main__': 448724b1fac5a20c24eef69df66e2bfbbb50426c87scottmg@chromium.org unittest.main() 45