25 include_once(__DIR__.
'/../../../lib/php/Test/Agent/AgentTestMockHelper.php');
26 include_once(__DIR__.
'/SchedulerTestRunnerCli.php');
63 protected function setUp() : void
65 $this->testDb =
new TestPgDb(
"spdxtest");
66 $this->
dbManager = $this->testDb->getDbManager();
69 $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
71 $this->agentDir = dirname(__DIR__, 4) .
'/build/src/spdx';
79 $this->testDb->fullDestruct();
89 $sysConf = $this->testDb->getFossSysConf();
91 $this->testInstaller->init();
92 $this->testInstaller->cpRepo();
93 $this->testInstaller->install($this->agentDir);
101 $this->testInstaller->uninstall($this->agentDir);
102 $this->testInstaller->rmRepo();
103 $this->testInstaller->clear();
111 $this->testDb->createPlainTables(array(),
true);
112 $this->testDb->createInheritedTables();
113 $this->
dbManager->queryOnce(
"CREATE TABLE copyright_ars () INHERITS (ars_master)");
115 $this->testDb->createSequences(array(
'agent_agent_pk_seq',
'pfile_pfile_pk_seq',
'upload_upload_pk_seq',
116 'nomos_ars_ars_pk_seq',
'license_file_fl_pk_seq',
'license_ref_rf_pk_seq',
117 'license_ref_bulk_lrb_pk_seq',
'clearing_decision_clearing_decision_pk_seq',
118 'clearing_event_clearing_event_pk_seq'));
119 $this->testDb->createConstraints(array(
'agent_pkey',
'pfile_pkey',
'upload_pkey_idx',
120 'FileLicense_pkey',
'clearing_event_pkey'));
121 $this->testDb->alterTables(array(
'agent',
'pfile',
'upload',
'ars_master',
'license_ref_bulk',
'license_set_bulk',
122 'clearing_event',
'clearing_decision',
'license_file',
'license_ref',
'highlight'));
124 $this->testDb->insertData(array(
'mimetype_ars',
'pkgagent_ars',
'ununpack_ars',
'decider_ars'),
true,__DIR__.
'/fo_report.sql');
125 $this->testDb->resetSequenceAsMaxOf(
'agent_agent_pk_seq',
'agent',
'agent_pk');
134 if (preg_match(
"/.*HEART: ([0-9]*).*/", $output, $matches)) {
135 return intval($matches[1]);
163 $this->
dbManager->queryOnce(
"ALTER TABLE uploadtree_a RENAME TO uploadtree_$uploadId", __METHOD__.
'.alterUploadtree');
164 $this->
dbManager->getSingleRow(
"UPDATE upload SET uploadtree_tablename=$1 WHERE upload_pk=$2",
165 array(
"uploadtree_$uploadId",$uploadId),__METHOD__.
'.alterUpload');
177 list($success,$output,$retCode) = $this->runnerCli->run($uploadId, $this->userId, $this->groupId, $jobId);
179 assertThat(
'cannot run runner', $success, equalTo(
true));
180 assertThat(
'report failed: "'.$output.
'"', $retCode, equalTo(0));
192 $row = $this->
dbManager->getSingleRow(
"SELECT upload_fk,job_fk,filepath FROM reportgen WHERE job_fk = $1", array($jobId),
194 assertThat($row, hasKeyValuePair(
'upload_fk', $uploadId));
195 assertThat($row, hasKeyValuePair(
'job_fk', $jobId));
196 $filepath = $row[
'filepath'];
197 assertThat($filepath, endsWith(
'.rdf'));
198 $this->assertFileExists($filepath,
"RDF report does not exists.");
220 $copyrightStatement =
'Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved';
221 assertThat(file_get_contents($filepath), stringContainsInOrder($copyrightStatement));
223 $email =
'condor-admin@cs.wisc.edu';
224 assertThat(file_get_contents($filepath), not(stringContainsInOrder($email)));
226 $this->addToAssertionCount(\Hamcrest\MatcherAssert::getCount()-$this->assertCountBefore);
240 $verification = exec(
"java -jar $toolJarFile Verify $filepath");
241 assertThat($verification,equalTo(
'This SPDX Document is valid.'));
260 $jarFileBasename =
'tools-java-'.$version.
'-jar-with-dependencies.jar';
261 $jarFile = __DIR__.
'/'.$jarFileBasename;
262 if (!file_exists($jarFile)) {
263 $zipFile = __DIR__ .
"/spdx-tools-java-$version.zip";
264 file_put_contents($zipFile, fopen(
"https://github.com/spdx/tools-java/releases/download/$tag/tools-java-$version.zip",
'r'));
265 $zip =
new ZipArchive;
266 if ($zip->open($zipFile) === TRUE) {
267 $zip->extractTo(__DIR__, [$jarFileBasename]);
272 $this->assertFileExists($jarFile,
'could not download SPDXTools');
283 exec(
'which java', $lines, $returnVar);
284 $this->assertEquals(0,$returnVar,
'java required for this test');
Handles scheduler interaction.
Tests for Spdx agent and scheduler interaction.
testSpdxForNormalUploadtreeTable()
Test spdx agent for RDF.
setUpTables()
Setup tables required for test.
setUpRepo()
Setup test repo.
testSpdxForSpecialUploadtreeTable()
Test spdx agent for RDF.
pullSpdxTools()
Pull SPDX toolkit from github if not found.
getReportFilepathFromJob($uploadId, $jobId)
Get the file path for report from DB.
getHeartCount($output)
Get the heart count from agent.
tearDown()
Teardown test db.
verifyRdf($filepath)
Use SPDX toolkit to verify RDF file format.
verifyJavaIsInstalled()
Verify if java is intalled on the system.
runJobFromJobque($uploadId, $jobId)
Run jobs from queue.
rmRepo()
Teardown test repo.
runAndTestReportRDF($uploadId=1)
Create RDF report and check it.
fo_dbManager * dbManager
fo_dbManager object
Namespace to hold test cases for spdx agent.