def test_clean_one_project(self):
        # We first generate project, then clean it
        generate.setup(self.export_subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'uvision'
        ])
        result = generate.run(args)

        # this should generate a project to generated_projects/uvision_project_2/project_2.uvproj
        assert os.path.isfile(
            'generated_projects/uvision_project_2/project_2.uvproj')
        assert result == 0

        # now clean
        clean.setup(self.clean_subparser)
        args = self.parser.parse_args([
            'clean', '-f', 'test_workspace/projects.yaml', '-p', 'project_2',
            '-t', 'uvision'
        ])
        result = clean.run(args)

        assert not os.path.isfile(
            'generated_projects/uvision_project_2/project_2.uvproj')
        assert not os.path.isdir('generated_projects/uvision_project_2')
        assert result == 0
    def test_generate_one_project_arm_none_eabi_gdb(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'arm_none_eabi_gdb'])
        result = generate.run(args)

        assert result == 0
    def test_generate_one_project_eclipse_make_gcc_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'eclipse_make_gcc_arm'])
        result = generate.run(args)

        assert result == 0
    def test_generate_workspace_iar_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p',
            'project_workspace', '-t', 'iar_arm'])
        result = generate.run(args)

        assert result == 0
    def test_generate_project2_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2'])
        result = generate.run(args)

        # No tools defined
        assert result == -1
    def test_generate_project3_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_3'])
        result = generate.run(args)

        # one of the tools is unknown , should return -1
        assert result == -1
    def test_generate_one_project_make_gcc_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'make_gcc_arm'])
        result = generate.run(args)

        assert result == 0
        # this should generate a project to generated_projects/uvision_project_2/Makefile
        assert os.path.isfile('generated_projects/make_gcc_arm_project_2/Makefile')
    def test_generate_one_project_eclipse_make_gcc_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'eclipse_make_gcc_arm'
        ])
        result = generate.run(args)

        assert result == 0
    def test_generate_one_project_arm_none_eabi_gdb(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'arm_none_eabi_gdb'
        ])
        result = generate.run(args)

        assert result == 0
    def test_generate_project3_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p', 'project_3'
        ])
        result = generate.run(args)

        # one of the tools is unknown , should return -1
        assert result == -1
    def test_generate_project2_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p', 'project_2'
        ])
        result = generate.run(args)

        # No tools defined
        assert result == -1
    def test_generate_workspace_iar_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_workspace', '-t', 'iar_arm'
        ])
        result = generate.run(args)

        assert result == 0
    def test_generate_workspace_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p',
            'project_workspace'])
        result = generate.run(args)

        # we dont specify tool to generate, which is not valid for workspace.
        # we don't know which tool we should build worksapce for as it consists
        # of projects, and each can speficify tools supported.
        assert result == -1
    def test_generate_one_project_uvision(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'uvision'])
        result = generate.run(args)

        assert result == 0

        # this should generate a project to generated_projects/uvision_project_2/project_2.uvproj
        assert os.path.isfile('generated_projects/uvision_project_2/project_2.uvproj')
    def test_generate_workspace_all_tools(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_workspace'
        ])
        result = generate.run(args)

        # we dont specify tool to generate, which is not valid for workspace.
        # we don't know which tool we should build worksapce for as it consists
        # of projects, and each can speficify tools supported.
        assert result == -1
    def test_generate_one_project_iar_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'iar_arm'])
        result = generate.run(args)

        assert result == 0

        # this should generate a project to generated_projects/uvision_project_2/project_2.ewp/ewd/eww
        assert os.path.isfile('generated_projects/iar_arm_project_2/project_2.ewp')
        assert os.path.isfile('generated_projects/iar_arm_project_2/project_2.ewd')
        assert os.path.isfile('generated_projects/iar_arm_project_2/project_2.eww')
    def test_generate_one_project_make_gcc_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'make_gcc_arm'
        ])
        result = generate.run(args)

        assert result == 0
        # this should generate a project to generated_projects/uvision_project_2/Makefile
        assert os.path.isfile(
            'generated_projects/make_gcc_arm_project_2/Makefile')
    def test_generate_one_project_uvision(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'uvision'
        ])
        result = generate.run(args)

        assert result == 0

        # this should generate a project to generated_projects/uvision_project_2/project_2.uvproj
        assert os.path.isfile(
            'generated_projects/uvision_project_2/project_2.uvproj')
    def test_generate_one_project_iar_arm(self):
        generate.setup(self.subparser)
        args = self.parser.parse_args([
            'generate', '-f', 'test_workspace/projects.yaml', '-p',
            'project_2', '-t', 'iar_arm'
        ])
        result = generate.run(args)

        assert result == 0

        # this should generate a project to generated_projects/uvision_project_2/project_2.ewp/ewd/eww
        assert os.path.isfile(
            'generated_projects/iar_arm_project_2/project_2.ewp')
        assert os.path.isfile(
            'generated_projects/iar_arm_project_2/project_2.ewd')
        assert os.path.isfile(
            'generated_projects/iar_arm_project_2/project_2.eww')
    def test_clean_one_project(self):
        # We first generate project, then clean it
        generate.setup(self.export_subparser)
        args = self.parser.parse_args(['generate','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'uvision'])
        result = generate.run(args)

        # this should generate a project to generated_projects/uvision_project_2/project_2.uvproj
        assert os.path.isfile('generated_projects/uvision_project_2/project_2.uvproj')
        assert result == 0

        # now clean
        clean.setup(self.clean_subparser)
        args = self.parser.parse_args(['clean','-f','test_workspace/projects.yaml','-p','project_2',
            '-t', 'uvision'])
        result = clean.run(args)

        assert not os.path.isfile('generated_projects/uvision_project_2/project_2.uvproj')
        assert not os.path.isdir('generated_projects/uvision_project_2')
        assert result == 0