You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
#!/usr/bin/env vpython3
 | 
						|
# Copyright (c) 2024 The Chromium Authors. All rights reserved.
 | 
						|
# Use of this source code is governed by a BSD-style license that can be
 | 
						|
# found in the LICENSE file.
 | 
						|
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import unittest
 | 
						|
 | 
						|
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
						|
sys.path.insert(0, ROOT_DIR)
 | 
						|
 | 
						|
import gn_helper
 | 
						|
from testing_support import trial_dir
 | 
						|
 | 
						|
 | 
						|
def write(filename, content):
 | 
						|
    """Writes the content of a file and create the directories as needed."""
 | 
						|
    filename = os.path.abspath(filename)
 | 
						|
    dirname = os.path.dirname(filename)
 | 
						|
    if not os.path.isdir(dirname):
 | 
						|
        os.makedirs(dirname)
 | 
						|
    with open(filename, 'w') as f:
 | 
						|
        f.write(content)
 | 
						|
 | 
						|
 | 
						|
class GnHelperTest(trial_dir.TestCase):
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        super().setUp()
 | 
						|
        self.previous_dir = os.getcwd()
 | 
						|
        os.chdir(self.root_dir)
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        os.chdir(self.previous_dir)
 | 
						|
        super().tearDown()
 | 
						|
 | 
						|
    def test_lines(self):
 | 
						|
        write('.gn', '')
 | 
						|
        out_dir = os.path.join('out', 'dir')
 | 
						|
        # Make sure nested import directives work. This is based on the
 | 
						|
        # reclient test.
 | 
						|
        write(os.path.join(out_dir, 'args.gn'), 'import("//out/common.gni")')
 | 
						|
        write(os.path.join('out', 'common.gni'), 'import("common_2.gni")')
 | 
						|
        write(os.path.join('out', 'common_2.gni'), 'use_remoteexec=true')
 | 
						|
 | 
						|
        lines = list(gn_helper.lines(out_dir))
 | 
						|
 | 
						|
        # The test will only pass if both imports work and
 | 
						|
        # 'use_remoteexec=true' is seen.
 | 
						|
        self.assertListEqual(lines, [
 | 
						|
            'use_remoteexec=true',
 | 
						|
        ])
 | 
						|
 | 
						|
    def test_args(self):
 | 
						|
        write('.gn', '')
 | 
						|
        out_dir = os.path.join('out', 'dir')
 | 
						|
        # Make sure nested import directives work. This is based on the
 | 
						|
        # reclient test.
 | 
						|
        write(os.path.join(out_dir, 'args.gn'), 'import("//out/common.gni")')
 | 
						|
        write(os.path.join('out', 'common.gni'), 'import("common_2.gni")')
 | 
						|
        write(os.path.join('out', 'common_2.gni'), 'use_remoteexec=true')
 | 
						|
 | 
						|
        lines = list(gn_helper.args(out_dir))
 | 
						|
 | 
						|
        # The test will only pass if both imports work and
 | 
						|
        # 'use_remoteexec=true' is seen.
 | 
						|
        self.assertListEqual(lines, [
 | 
						|
            ('use_remoteexec', 'true'),
 | 
						|
        ])
 | 
						|
 | 
						|
    def test_args_spaces(self):
 | 
						|
        write('.gn', '')
 | 
						|
        out_dir = os.path.join('out', 'dir')
 | 
						|
        # Make sure nested import directives work. This is based on the
 | 
						|
        # reclient test.
 | 
						|
        write(os.path.join(out_dir, 'args.gn'), 'import("//out/common.gni")')
 | 
						|
        write(os.path.join('out', 'common.gni'), 'import("common_2.gni")')
 | 
						|
        write(os.path.join('out', 'common_2.gni'), '  use_remoteexec = true  ')
 | 
						|
 | 
						|
        lines = list(gn_helper.args(out_dir))
 | 
						|
 | 
						|
        # The test will only pass if both imports work and
 | 
						|
        # 'use_remoteexec=true' is seen.
 | 
						|
        self.assertListEqual(lines, [
 | 
						|
            ('use_remoteexec', 'true'),
 | 
						|
        ])
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    unittest.main()
 |