def test(self): task_id = codecoverage.get_last_task() self.assertTrue(task_id) task_data = codecoverage.get_task_details(task_id) self.assertEqual(task_data["metadata"]["name"], "Gecko Decision Task") revision = task_data["payload"]["env"]["GECKO_HEAD_REV"] task_id_2 = codecoverage.get_task("mozilla-central", revision) self.assertEqual(task_id, task_id_2) artifacts = codecoverage.get_task_artifacts(task_id) chosen_artifact = None for artifact in artifacts: if artifact["name"] == "public/target-tasks.json": chosen_artifact = artifact self.assertIsNotNone(chosen_artifact) tasks = codecoverage.get_tasks_in_group(task_data["taskGroupId"]) self.assertIsInstance(tasks, list) try: os.mkdir("ccov-artifacts") except OSError as e: if e.errno != errno.EEXIST: raise e codecoverage.download_artifact(task_id, chosen_artifact, "ccov-artifacts") self.assertTrue( os.path.exists("ccov-artifacts/%s_target-tasks.json" % task_id)) os.remove("ccov-artifacts/%s_target-tasks.json" % task_id) artifact_paths = codecoverage.download_coverage_artifacts( task_id, "gtest-1proc", None, "ccov-artifacts") self.assertEqual( len([a for a in os.listdir("ccov-artifacts") if "grcov" in a]), 2) self.assertEqual( len([a for a in os.listdir("ccov-artifacts") if "jsvm" in a]), 2) self.assertEqual(len([a for a in artifact_paths if "grcov" in a]), 2) self.assertEqual(len([a for a in artifact_paths if "jsvm" in a]), 2) artifact_paths = codecoverage.download_coverage_artifacts( task_id, "cppunit-1proc", None, "ccov-artifacts") self.assertEqual( len([a for a in os.listdir("ccov-artifacts") if "grcov" in a]), 4) self.assertEqual( len([a for a in os.listdir("ccov-artifacts") if "jsvm" in a]), 4) self.assertEqual(len([a for a in artifact_paths if "grcov" in a]), 2) self.assertEqual(len([a for a in artifact_paths if "jsvm" in a]), 2) codecoverage.download_grcov() codecoverage.generate_report("./grcov", "lcov", "output.info", artifact_paths) self.assertTrue(os.path.exists("output.info")) codecoverage.generate_report("./grcov", "html", "report_html", artifact_paths) self.assertTrue(os.path.isdir("report_html")) self.assertTrue(os.path.exists("report_html/index.html"))
def test_download_grcov(self): codecoverage.download_grcov() self.assertTrue(os.path.exists("grcov")) self.assertTrue(os.path.exists("grcov_ver")) with open("grcov_ver", "r") as f: ver = f.read() # grcov is downloaded again if the executable doesn't exist. os.remove("grcov") codecoverage.download_grcov() self.assertTrue(os.path.exists("grcov")) self.assertTrue(os.path.exists("grcov_ver")) # grcov isn't downloaded again if the executable exists and the version is the same. with open("grcov", "w") as f: f.write("prova") codecoverage.download_grcov() with open("grcov", "r") as f: self.assertEqual("prova", f.read()) # grcov is overwritten if the version changes. with open("grcov_ver", "w") as f: f.write("v0.0.0") codecoverage.download_grcov() self.assertTrue(os.path.getsize("grcov") > 5) with open("grcov_ver", "r") as f: self.assertEqual(ver, f.read())