(cherry picked from commit ac01d52fa6c27de274394dfaa144990f05d9b8df) Related: rhbz#1785154
		
			
				
	
	
		
			121 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import tempfile
 | |
| 
 | |
| import composertest
 | |
| 
 | |
| 
 | |
| class TestImages(composertest.ComposerTestCase):
 | |
|     """
 | |
|         This is the "entry-point" to the test suite when
 | |
|         executed in Cockpit CI. If $TEST_SCENARIO=="" or
 | |
|         $TEST_SCENARIO="images" we end up here.
 | |
| 
 | |
|         New test methods should be added here first!
 | |
|         When this target becomes too slow we split out into
 | |
|         separate scenarios!
 | |
|     """
 | |
|     def test_blueprint_sanity(self):
 | |
|         self.runCliTest("/tests/cli/test_blueprints_sanity.sh")
 | |
| 
 | |
|     def test_compose_sanity(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_sanity.sh")
 | |
| 
 | |
|     def test_ext4_filesystem(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_ext4-filesystem.sh")
 | |
| 
 | |
|     def test_partitioned_disk(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_partitioned-disk.sh")
 | |
| 
 | |
| 
 | |
| class TestQcow2(composertest.ComposerTestCase):
 | |
|     def tearDown(self):
 | |
|         super().tearDownTestMachine()
 | |
| 
 | |
|     def test_qcow2(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_qcow2.sh")
 | |
| 
 | |
|         with tempfile.TemporaryDirectory(prefix="/var/tmp/lorax-test.") as tmpdir:
 | |
|             # Copy the resulting qcow2 image and shut down the VM
 | |
|             self.tearDownVirt(virt_dir="/var/tmp/test-results/*", local_dir=tmpdir)
 | |
| 
 | |
|             # Boot the image
 | |
|             self.setUpTestMachine(tmpdir + "/disk.qcow2", tmpdir + "/id_rsa")
 | |
| 
 | |
|             # Upload SSH keys to the machine so we can use the existing assertions
 | |
|             # by ssh'ing to localhost
 | |
|             self.machine.upload([tmpdir + "/id_rsa", tmpdir + "/id_rsa.pub"], "/root/.ssh")
 | |
| 
 | |
|             # Upload the contents of the ./tests/ directory to the machine
 | |
|             self.machine.upload(["../tests"], "/")
 | |
| 
 | |
|             # Run the test, on the booted image
 | |
|             self.runImageTest("/tests/cli/test_boot_qcow2.sh")
 | |
| 
 | |
| 
 | |
| class TestLiveIso(composertest.ComposerTestCase):
 | |
|     def tearDown(self):
 | |
|         super().tearDownTestMachine()
 | |
| 
 | |
|     def test_live_iso(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_live-iso.sh")
 | |
| 
 | |
|         with tempfile.TemporaryDirectory(prefix="/var/tmp/lorax-test.") as tmpdir:
 | |
|             # Copy the resulting iso and shut down the VM
 | |
|             self.tearDownVirt(virt_dir="/var/tmp/test-results/*", local_dir=tmpdir)
 | |
| 
 | |
|             # Boot the image, login using the ssh key
 | |
|             self.setUpTestMachine(tmpdir + "/live.iso", tmpdir + "/id_rsa")
 | |
| 
 | |
|             # Upload the contents of the ./tests/ directory to the machine
 | |
|             self.machine.upload(["../tests"], "/")
 | |
| 
 | |
|             # Run the test, on the booted image
 | |
|             self.runImageTest("/tests/cli/test_boot_live-iso.sh")
 | |
| 
 | |
| 
 | |
| class TestRepos(composertest.ComposerTestCase):
 | |
|     def test_repos_sanity(self):
 | |
|         self.runCliTest("/tests/cli/test_repos_sanity.sh")
 | |
| 
 | |
| 
 | |
| class TestTar(composertest.ComposerTestCase):
 | |
|     def test_tar(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_tar.sh")
 | |
| 
 | |
|     def test_tar_kickstart(self):
 | |
|         self.runCliTest("/tests/cli/test_compose_tar_kickstart.sh")
 | |
| 
 | |
|         with tempfile.TemporaryDirectory(prefix="/var/tmp/lorax-test.") as tmpdir:
 | |
|             # Copy the resulting disk image and shut down the VM
 | |
|             self.tearDownVirt(virt_dir="/var/tmp/test-results/*", local_dir=tmpdir)
 | |
| 
 | |
|             # Boot the image, login using the ssh key
 | |
|             self.setUpTestMachine(tmpdir + "/disk.img", tmpdir + "/id_rsa")
 | |
| 
 | |
|             # Upload SSH keys to the machine so we can use the existing assertions
 | |
|             # by ssh'ing to localhost
 | |
|             self.machine.upload([tmpdir + "/id_rsa", tmpdir + "/id_rsa.pub"], "/root/.ssh")
 | |
| 
 | |
|             # Upload the contents of the ./tests/ directory to the machine
 | |
|             self.machine.upload(["../tests"], "/")
 | |
| 
 | |
|             # Run the test, on the booted image
 | |
|             self.runImageTest("/tests/cli/test_boot_tar_kickstart.sh")
 | |
| 
 | |
| class TestPylint(composertest.ComposerTestCase):
 | |
|     def test_ci(self):
 | |
| 
 | |
|         # Create an empty folder for the upload bellow
 | |
|         self.execute(["mkdir", "/lorax"])
 | |
| 
 | |
|         # Upload contents of repo for running the test
 | |
|         self.machine.upload(["../tests", "../src", "../share", "../docs", "../Makefile",
 | |
|         "../test-packages"], "/lorax")
 | |
| 
 | |
|         # Running the test
 | |
|         self.runImageTest("/tests/cli/test_ci.sh")
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     composertest.main()
 |