Esempio n. 1
0
    def test_barebones_init(self):
        project_name='virtual_machine_1'
        self.kwargs.update({
            'subparser_name':'init', 
            'force':True, 
            'project-name':project_name, 
        })

        vm = VM(**self.kwargs)
        self.assertEqual(vm.RET['STATUS'], 'SUCCESS')
        
        self.assertTrue(os.path.isdir(project_name))

        # Check that we have to be in correct directory
        self.assertRaises(IOError, vm.readVagabond)

        hold_dir = os.getcwd()
        os.chdir(project_name)
        vm.readVagabond() 
        config = vm.config
        self.assertEqual(vm.config_version, API_VERSION)
        
        # confirm that that config has a vm section
        self.assertTrue(config.get('vm'))

        # Confirm that the defaults are correct
        vm = config.get('vm')
        self.assertEqual('hashicopy/precise64',  vm.get('box'))
        self.assertEqual(None,  vm.get('iso'))

        self.assertEqual(project_name, vm.get('hostname'))
        
        # Now go back to parent directory and try again to see errors
        os.chdir(hold_dir)

        # Now test that trying to create the project again without --force throws errors
        self.kwargs.update({'force':False})
        self.assertRaises(VagabondError, VM, **self.kwargs)
        
        self.kwargs.update({'force':True})
        vm = VM(**self.kwargs)

        project_path=os.path.abspath(project_name)
        shutil.rmtree(project_path)
        self.assertFalse(os.path.isdir(project_path))
Esempio n. 2
0
            break
        else:
            correct = reading
            correctFile = open(correct, 'r')
            curr = correctFile.read()
            correctFile.close()
            if parser.parse(curr) == 'SUCCESS':
                print("SUCCESSFULLY COMPILED!")
                print("---BEGINNING EXECUTION---")  # a.out

                # start virtual machine
                MainMemory.instantiate()
                dirs = symbolTable.buildForVM()
                virtualMachine = VM.instantiate(quadruple.quads, dirs[0],
                                                dirs[1])

                # start main memory
                virtualMachine.execute()

            # resetting tables and classes for running more programs
            MainMemory.instantiate().reset()
            virtualMachine = VM.get()
            virtualMachine.reset()
            symbolTable.reset()
            quadruple.reset()
            resetGlobals()

    except EOFError:
        print("INCORRECT")
    if not reading: continue