@@ -14,13 +14,19 @@ RUN_MACARON_SCRIPT=$2
1414
1515#  The scripts to compare the results of the integration tests.
1616COMPARE_DEPS=$WORKSPACE /tests/dependency_analyzer/compare_dependencies.py
17- COMPARE_JSON_OUT=$WORKSPACE /tests/e2e/compare_e2e_result.py
1817COMPARE_POLICIES=$WORKSPACE /tests/policy_engine/compare_policy_reports.py
1918COMPARE_VSA=$WORKSPACE /tests/vsa/compare_vsa.py
2019UNIT_TEST_SCRIPT=$WORKSPACE /scripts/dev_scripts/test_run_macaron_sh.py
20+ RUN_POLICY=" $RUN_MACARON_SCRIPT  verify-policy" 
21+ DB=$WORKSPACE /output/macaron.db
2122
2223RESULT_CODE=0
2324
25+ function  run_macaron_clean()  {
26+     rm $DB 
27+     $RUN_MACARON_SCRIPT  " $@ " 
28+ }
29+ 
2430function  log_fail()  {
2531    printf  " Error: FAILED integration test (line ${BASH_LINENO} ) %s\n"   $@ 
2632    RESULT_CODE=1
@@ -37,49 +43,47 @@ echo "with dependency resolution using cyclonedx Gradle plugin (default)."
3743echo  -e " ----------------------------------------------------------------------------------\n" 
3844DEP_RESULT=$WORKSPACE /output/reports/github_com/timyarkov/multibuild_test/dependencies.json
3945DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/cyclonedx_timyarkov_multibuild_test.json
40- JSON_RESULT=$WORKSPACE /output/reports/github_com/timyarkov/multibuild_test/multibuild_test.json
41- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/multibuild_test/multibuild_test.json
42- $RUN_MACARON_SCRIPT  analyze -rp https://github.com/timyarkov/multibuild_test -b main -d a8b0efe24298bc81f63217aaa84776c3d48976c5 ||  log_fail
46+ OUTPUT_POLICY=$WORKSPACE /tests/e2e/expected_results/multibuild_test/multibuild_test.dl
47+ run_macaron_clean analyze -rp https://github.com/timyarkov/multibuild_test -b main -d a8b0efe24298bc81f63217aaa84776c3d48976c5 ||  log_fail
4348
4449python $COMPARE_DEPS  $DEP_RESULT  $DEP_EXPECTED  ||  log_fail
4550
46- python  $COMPARE_JSON_OUT   $JSON_RESULT   $JSON_EXPECTED  ||  log_fail
51+ $RUN_POLICY  -d  $DB  -f  $OUTPUT_POLICY  ||  log_fail
4752
4853echo  -e " \n----------------------------------------------------------------------------------" 
4954echo  " apache/maven: Check the resolved dependency output with config for cyclonedx maven plugin (default)." 
5055echo  -e " ----------------------------------------------------------------------------------\n" 
5156DEP_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/dependencies.json
5257DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/cyclonedx_apache_maven.json
5358
54- $RUN_MACARON_SCRIPT  analyze -c $WORKSPACE /tests/dependency_analyzer/configurations/maven_config.yaml ||  log_fail
59+ run_macaron_clean  analyze -c $WORKSPACE /tests/dependency_analyzer/configurations/maven_config.yaml ||  log_fail
5560python $COMPARE_DEPS  $DEP_RESULT  $DEP_EXPECTED  ||  log_fail
5661
5762echo  -e " \n----------------------------------------------------------------------------------" 
5863echo  " apache/maven: e2e using the local repo path, the branch name and the commit digest without dependency resolution." 
5964echo  -e " ----------------------------------------------------------------------------------\n" 
60- JSON_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/maven.json
61- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/maven/maven.json
65+ OUTPUT_POLICY=$WORKSPACE /tests/e2e/expected_results/maven/maven.dl
66+ 
67+ run_macaron_clean -lr $WORKSPACE /output/git_repos/github_com analyze -r apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps ||  log_fail
6268
63- $RUN_MACARON_SCRIPT  -lr $WORKSPACE /output/git_repos/github_com analyze -r apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps ||  log_fail
64- python $COMPARE_JSON_OUT  $JSON_RESULT  $JSON_EXPECTED  ||  log_fail
69+ $RUN_POLICY  -d $DB  -f $OUTPUT_POLICY  ||  log_fail
6570
6671echo  -e " \n----------------------------------------------------------------------------------" 
6772echo  " apache/maven: Check the e2e output JSON file with config and no dependency analyzing." 
6873echo  -e " ----------------------------------------------------------------------------------\n" 
69- JSON_RESULT_DIR=$WORKSPACE /output/reports/github_com/apache/maven
70- JSON_EXPECT_DIR=$WORKSPACE /tests/e2e/expected_results/maven
74+ EXPECT_DIR=$WORKSPACE /tests/e2e/expected_results/maven
7175
7276declare  -a COMPARE_FILES=(
73-     " maven.json " 
74-     " guava.json " 
75-     " mockito.json " 
77+     " maven.dl " 
78+     " guava.dl " 
79+     " mockito.dl " 
7680)
7781
78- $RUN_MACARON_SCRIPT  analyze -c $WORKSPACE /tests/e2e/configurations/maven_config.yaml --skip-deps ||  log_fail
82+ run_macaron_clean  analyze -c $WORKSPACE /tests/e2e/configurations/maven_config.yaml --skip-deps ||  log_fail
7983
8084for  i  in  " ${COMPARE_FILES[@]} " 
8185do 
82-     python  $COMPARE_JSON_OUT   $JSON_RESULT_DIR / $i   $JSON_EXPECT_DIR /$i  ||  log_fail
86+     $RUN_POLICY  -d  $DB  -f  $EXPECT_DIR /$i  ||  log_fail
8387done 
8488
8589echo  -e " \n----------------------------------------------------------------------------------" 
@@ -89,63 +93,47 @@ SBOM_FILE=$WORKSPACE/tests/dependency_analyzer/cyclonedx/resources/apache_maven_
8993DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/apache_maven_with_sbom_provided.json
9094DEP_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/dependencies.json
9195
92- $RUN_MACARON_SCRIPT  analyze -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b -sbom $SBOM_FILE  ||  log_fail
96+ run_macaron_clean  analyze -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b -sbom $SBOM_FILE  ||  log_fail
9397
9498python $COMPARE_DEPS  $DEP_RESULT  $DEP_EXPECTED  ||  log_fail
9599
96100echo  -e " \n----------------------------------------------------------------------------------" 
97101echo  " apache/maven: Analyzing with PURL and repository path without dependency resolution." 
98102echo  -e " ----------------------------------------------------------------------------------\n" 
99- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/purl/maven/maven.json
100- JSON_RESULT=$WORKSPACE /output/reports/maven/apache/maven/maven.json
101- $RUN_MACARON_SCRIPT  analyze -purl pkg:maven/apache/maven -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps ||  log_fail
103+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/purl/maven/maven.dl
104+ run_macaron_clean analyze -purl pkg:maven/apache/maven -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps ||  log_fail
102105
103- python  $COMPARE_JSON_OUT   $JSON_RESULT   $JSON_EXPECTED  ||  log_fail
106+ $RUN_POLICY  -d  $DB  -f  $OUTPUT_POLICY  ||  log_fail
104107
105108echo  -e " \n----------------------------------------------------------------------------------" 
106109echo  " urllib3/urllib3: Analyzing the repo path when automatic dependency resolution is skipped." 
107110echo  " The CUE expectation file is provided as a single file path." 
108111echo  -e " ----------------------------------------------------------------------------------\n" 
109- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.json
110- JSON_RESULT=$WORKSPACE /output/reports/github_com/urllib3/urllib3/urllib3.json
112+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.dl
111113EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/urllib3_PASS.cue
112- $RUN_MACARON_SCRIPT  analyze -pe $EXPECTATION_FILE  -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps ||  log_fail
114+ run_macaron_clean  analyze -pe $EXPECTATION_FILE  -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps ||  log_fail
113115
114- python  $COMPARE_JSON_OUT   $JSON_RESULT   $JSON_EXPECTED  ||  log_fail
116+ $RUN_POLICY  -d  $DB  -f  $OUTPUT_POLICY  ||  log_fail
115117
116118echo  -e " \n----------------------------------------------------------------------------------" 
117119echo  " urllib3/urllib3: Analyzing the repo path when automatic dependency resolution is skipped." 
118120echo  " The CUE expectation file should be found via the directory path." 
119121echo  -e " ----------------------------------------------------------------------------------\n" 
120- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.json
121- JSON_RESULT=$WORKSPACE /output/reports/github_com/urllib3/urllib3/urllib3.json
122+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.dl
122123EXPECTATION_DIR=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/
123- $RUN_MACARON_SCRIPT  analyze -pe $EXPECTATION_DIR  -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps ||  log_fail
124+ run_macaron_clean  analyze -pe $EXPECTATION_DIR  -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps ||  log_fail
124125
125- python  $COMPARE_JSON_OUT   $JSON_RESULT   $JSON_EXPECTED  ||  log_fail
126+ $RUN_POLICY  -d  $DB  -f  $OUTPUT_POLICY  ||  log_fail
126127
127128echo  -e " \n----------------------------------------------------------------------------------" 
128129echo  " Test verifying CUE provenance expectation for ossf/scorecard" 
129130echo  -e " ----------------------------------------------------------------------------------\n" 
130- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/scorecard/scorecard.json
131- JSON_RESULT=$WORKSPACE /output/reports/github/ossf/scorecard/scorecard.json
131+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/scorecard/scorecard.dl
132132DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/scorecard.ini
133133EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/scorecard_PASS.cue
134- $RUN_MACARON_SCRIPT  -dp 
$DEFAULTS_FILE  analyze -pe 
$EXPECTATION_FILE  -purl pkg:github/ossf/
[email protected]  --skip-deps 
||  log_fail
134+ run_macaron_clean  -dp 
$DEFAULTS_FILE  analyze -pe 
$EXPECTATION_FILE  -purl pkg:github/ossf/
[email protected]  --skip-deps 
||  log_fail
135135
136- python $COMPARE_JSON_OUT  $JSON_RESULT  $JSON_EXPECTED  ||  log_fail
137- 
138- echo  -e " \n----------------------------------------------------------------------------------" 
139- echo  " slsa-framework/slsa-verifier: Analyzing the repo path when automatic dependency resolution is skipped" 
140- echo  " and CUE file is provided as expectation." 
141- echo  -e " ----------------------------------------------------------------------------------\n" 
142- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/slsa-verifier/slsa-verifier_cue_PASS.json
143- JSON_RESULT=$WORKSPACE /output/reports/github_com/slsa-framework/slsa-verifier/slsa-verifier.json
144- EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/slsa_verifier_PASS.cue
145- DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/slsa_verifier.ini
146- $RUN_MACARON_SCRIPT  -dp $DEFAULTS_FILE  analyze -pe $EXPECTATION_FILE  -rp https://github.com/slsa-framework/slsa-verifier -b main -d fc50b662fcfeeeb0e97243554b47d9b20b14efac --skip-deps ||  log_fail
147- 
148- python $COMPARE_JSON_OUT  $JSON_RESULT  $JSON_EXPECTED  ||  log_fail
136+ $RUN_POLICY  -d $DB  -f $OUTPUT_POLICY  ||  log_fail
149137
150138echo  -e " \n----------------------------------------------------------------------------------" 
151139echo  " Run policy CLI with scorecard results." 
@@ -160,11 +148,21 @@ $RUN_MACARON_SCRIPT verify-policy -f $POLICY_FILE -d "$WORKSPACE/output/macaron.
160148python $COMPARE_POLICIES  $POLICY_RESULT  $POLICY_EXPECTED  ||  log_fail
161149python " $COMPARE_VSA "   " $VSA_RESULT "   " $VSA_PAYLOAD_EXPECTED "   ||  log_fail
162150
151+ echo  -e " \n----------------------------------------------------------------------------------" 
152+ echo  " slsa-framework/slsa-verifier: Analyzing the repo path when automatic dependency resolution is skipped" 
153+ echo  " and CUE file is provided as expectation." 
154+ echo  -e " ----------------------------------------------------------------------------------\n" 
155+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/slsa-verifier/slsa-verifier_cue_PASS.dl
156+ EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/slsa_verifier_PASS.cue
157+ DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/slsa_verifier.ini
158+ run_macaron_clean -dp $DEFAULTS_FILE  analyze -pe $EXPECTATION_FILE  -rp https://github.com/slsa-framework/slsa-verifier -b main -d fc50b662fcfeeeb0e97243554b47d9b20b14efac --skip-deps ||  log_fail
159+ 
160+ $RUN_POLICY  -d $DB  -f $OUTPUT_POLICY  ||  log_fail
161+ 
163162echo  -e " \n----------------------------------------------------------------------------------" 
164163echo  " behnazh-w/example-maven-app as a local and remote repository" 
165164echo  " Test the Witness and GitHub provenances as an input, Cue expectation validation, Policy CLI and VSA generation." 
166165echo  -e " ----------------------------------------------------------------------------------\n" 
167- RUN_POLICY=" macaron verify-policy" 
168166POLICY_FILE=$WORKSPACE /tests/policy_engine/resources/policies/example-maven-project/policy.dl
169167POLICY_RESULT=$WORKSPACE /output/policy_report.json
170168POLICY_EXPECTED=$WORKSPACE /tests/policy_engine/expected_results/example-maven-project/example_maven_project_policy_report.json
@@ -179,7 +177,7 @@ WITNESS_PROVENANCE_FILE=$WORKSPACE/tests/slsa_analyzer/provenance/resources/vali
179177git clone https://github.com/behnazh-w/example-maven-app.git $WORKSPACE /output/git_repos/local_repos/example-maven-app ||  log_fail
180178
181179#  Check the Witness provenance.
182- $RUN_MACARON_SCRIPT  analyze -pf 
$WITNESS_PROVENANCE_FILE  -pe 
$WITNESS_EXPECTATION_FILE  -purl pkg:maven/io.github.behnazh-w.demo/
[email protected] ? type=jar --repo-path example-maven-app --skip-deps 
||  log_fail
180+ run_macaron_clean  analyze -pf 
$WITNESS_PROVENANCE_FILE  -pe 
$WITNESS_EXPECTATION_FILE  -purl pkg:maven/io.github.behnazh-w.demo/
[email protected] ? type=jar --repo-path example-maven-app --skip-deps 
||  log_fail
183181
184182#  Test the remote repo with GitHub provenance.
185183GITHUB_EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/github-example-maven-project.cue
0 commit comments