From 36e4af1953a81036251be9a1b582657e821dc43d Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Mon, 22 Mar 2021 11:27:01 -0400 Subject: [PATCH] adjust jsom schema version + adopt java pom properies test fixtures Signed-off-by: Alex Goodman --- .github/workflows/acceptance-test.yaml | 142 --- .../snapshot/TestJSONDirsPresenter.golden | 81 ++ .../snapshot/TestJSONImgsPresenter.golden | 107 +++ .../stereoscope-fixture-image-simple.golden | Bin 0 -> 16896 bytes schema/json/schema-1.0.4.json | 830 ++++++++++++++++++ ...colon-delimited-with-equals.pom.properties | 5 + .../pom/colon-delimited.pom.properties | 5 + ...quals-delimited-with-colons.pom.properties | 5 + syft/pkg/cataloger/rust/parse_cargo_lock.go | 2 +- 9 files changed, 1034 insertions(+), 143 deletions(-) delete mode 100644 .github/workflows/acceptance-test.yaml create mode 100644 internal/presenter/packages/test-fixtures/snapshot/TestJSONDirsPresenter.golden create mode 100644 internal/presenter/packages/test-fixtures/snapshot/TestJSONImgsPresenter.golden create mode 100644 internal/presenter/packages/test-fixtures/snapshot/stereoscope-fixture-image-simple.golden create mode 100644 schema/json/schema-1.0.4.json create mode 100644 syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited-with-equals.pom.properties create mode 100644 syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited.pom.properties create mode 100644 syft/pkg/cataloger/java/test-fixtures/pom/equals-delimited-with-colons.pom.properties diff --git a/.github/workflows/acceptance-test.yaml b/.github/workflows/acceptance-test.yaml deleted file mode 100644 index 2fd79cad7..000000000 --- a/.github/workflows/acceptance-test.yaml +++ /dev/null @@ -1,142 +0,0 @@ -name: "Acceptance" -on: - workflow_dispatch: - push: - # ... only act on pushes to main - branches: - - main - # ... do not act on release tags - tags-ignore: - - v* - -env: - GO_VERSION: "1.14.x" - -jobs: - Build-Snapshot-Artifacts: - # though the release pipeline is running on mac for the signing step, we are skipping the signing step here and - # require a system with docker installed, which ubuntu-20.04 has by default (and mac does not for licensing reasons). - runs-on: ubuntu-20.04 - steps: - - uses: actions/setup-go@v2 - with: - go-version: ${{ env.GO_VERSION }} - - - uses: actions/checkout@v2 - - - name: Restore bootstrap cache - id: cache - uses: actions/cache@v2.1.3 - with: - path: | - ~/go/pkg/mod - ${{ github.workspace }}/.tmp - key: ${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ hashFiles('**/go.sum') }}-${{ hashFiles('Makefile') }} - restore-keys: | - ${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ hashFiles('**/go.sum') }}- - ${{ runner.os }}-go-${{ env.GO_VERSION }}- - - - name: Bootstrap project dependencies - if: steps.bootstrap-cache.outputs.cache-hit != 'true' - run: make bootstrap - - - name: Build snapshot artifacts - run: make snapshot - - - uses: actions/upload-artifact@v2 - with: - name: artifacts - path: snapshot/**/* - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,workflow,job,commit,message,author - text: The syft acceptance tests have failed tragically! - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_TOOLBOX_WEBHOOK_URL }} - if: ${{ failure() }} - - # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline - Acceptance-Linux: - needs: [Build-Snapshot-Artifacts] - # come Nov 30 2020 ubuntu-latest will be ubuntu-20.04, until then it needs to be explicitly referenced due to python 3.7 specific features being used - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - - uses: actions/download-artifact@v2 - with: - name: artifacts - path: snapshot - - - name: Run Acceptance Tests (Linux) - run: make acceptance-linux - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,workflow,job,commit,message,author - text: The syft acceptance tests have failed tragically! - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_TOOLBOX_WEBHOOK_URL }} - if: ${{ failure() }} - - # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline - Acceptance-Mac: - needs: [Build-Snapshot-Artifacts] - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - - - uses: actions/download-artifact@v2 - with: - name: artifacts - path: snapshot - - - name: Run Acceptance Tests (Mac) - run: make acceptance-mac - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,workflow,job,commit,message,author - text: The syft acceptance tests have failed tragically! - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_TOOLBOX_WEBHOOK_URL }} - if: ${{ failure() }} - - # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline - Inline-Compare: - needs: [Build-Snapshot-Artifacts] - # come Nov 30 2020 ubuntu-latest will be ubuntu-20.04, until then it needs to be explicitly referenced due to python 3.7 specific features being used - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - - name: Fingerprint inline-compare sources - run: make compare-fingerprint - - - name: Restore inline reports cache - id: cache - uses: actions/cache@v2.1.3 - with: - path: ${{ github.workspace }}/test/inline-compare/inline-reports - key: inline-reports-${{ hashFiles('**/inline-compare.fingerprint') }} - - - uses: actions/download-artifact@v2 - with: - name: artifacts - path: snapshot - - - name: Compare Anchore inline-scan results against snapshot build output - run: make compare-snapshot - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,workflow,job,commit,message,author - text: The syft acceptance tests have failed tragically! - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_TOOLBOX_WEBHOOK_URL }} - if: ${{ failure() }} diff --git a/internal/presenter/packages/test-fixtures/snapshot/TestJSONDirsPresenter.golden b/internal/presenter/packages/test-fixtures/snapshot/TestJSONDirsPresenter.golden new file mode 100644 index 000000000..b43c0e029 --- /dev/null +++ b/internal/presenter/packages/test-fixtures/snapshot/TestJSONDirsPresenter.golden @@ -0,0 +1,81 @@ +{ + "artifacts": [ + { + "id": "package-1-id", + "name": "package-1", + "version": "1.0.1", + "type": "python", + "foundBy": "the-cataloger-1", + "locations": [ + { + "path": "/some/path/pkg1" + } + ], + "licenses": [ + "MIT" + ], + "language": "python", + "cpes": [ + "cpe:2.3:*:some:package:2:*:*:*:*:*:*:*" + ], + "purl": "a-purl-2", + "metadataType": "PythonPackageMetadata", + "metadata": { + "name": "package-1", + "version": "1.0.1", + "license": "", + "author": "", + "authorEmail": "", + "platform": "", + "sitePackagesRootPath": "" + } + }, + { + "id": "package-2-id", + "name": "package-2", + "version": "2.0.1", + "type": "deb", + "foundBy": "the-cataloger-2", + "locations": [ + { + "path": "/some/path/pkg1" + } + ], + "licenses": [], + "language": "", + "cpes": [ + "cpe:2.3:*:some:package:2:*:*:*:*:*:*:*" + ], + "purl": "a-purl-2", + "metadataType": "DpkgMetadata", + "metadata": { + "package": "package-2", + "source": "", + "version": "2.0.1", + "sourceVersion": "", + "architecture": "", + "maintainer": "", + "installedSize": 0, + "files": null + } + } + ], + "artifactRelationships": [], + "source": { + "type": "directory", + "target": "/some/path" + }, + "distro": { + "name": "", + "version": "", + "idLike": "" + }, + "descriptor": { + "name": "syft", + "version": "[not provided]" + }, + "schema": { + "version": "1.0.4", + "url": "https://raw.githubusercontent.com/anchore/syft/main/schema/json/schema-1.0.4.json" + } +} diff --git a/internal/presenter/packages/test-fixtures/snapshot/TestJSONImgsPresenter.golden b/internal/presenter/packages/test-fixtures/snapshot/TestJSONImgsPresenter.golden new file mode 100644 index 000000000..dbb11f32c --- /dev/null +++ b/internal/presenter/packages/test-fixtures/snapshot/TestJSONImgsPresenter.golden @@ -0,0 +1,107 @@ +{ + "artifacts": [ + { + "id": "package-1-id", + "name": "package-1", + "version": "1.0.1", + "type": "python", + "foundBy": "the-cataloger-1", + "locations": [ + { + "path": "/somefile-1.txt", + "layerID": "sha256:e158b57d6f5a96ef5fd22f2fe76c70b5ba6ff5b2619f9d83125b2aad0492ac7b" + } + ], + "licenses": [ + "MIT" + ], + "language": "python", + "cpes": [ + "cpe:2.3:*:some:package:1:*:*:*:*:*:*:*" + ], + "purl": "a-purl-1", + "metadataType": "PythonPackageMetadata", + "metadata": { + "name": "package-1", + "version": "1.0.1", + "license": "", + "author": "", + "authorEmail": "", + "platform": "", + "sitePackagesRootPath": "" + } + }, + { + "id": "package-2-id", + "name": "package-2", + "version": "2.0.1", + "type": "deb", + "foundBy": "the-cataloger-2", + "locations": [ + { + "path": "/somefile-2.txt", + "layerID": "sha256:da21056e7bf4308ecea0c0836848a7fe92f38fdcf35bc09ee6d98e7ab7beeebf" + } + ], + "licenses": [], + "language": "", + "cpes": [ + "cpe:2.3:*:some:package:2:*:*:*:*:*:*:*" + ], + "purl": "a-purl-2", + "metadataType": "DpkgMetadata", + "metadata": { + "package": "package-2", + "source": "", + "version": "2.0.1", + "sourceVersion": "", + "architecture": "", + "maintainer": "", + "installedSize": 0, + "files": null + } + } + ], + "artifactRelationships": [], + "source": { + "type": "image", + "target": { + "userInput": "user-image-input", + "imageID": "sha256:92fbdd71302c666029f11ef5ea49caba6e97daa86cb4dce7874377b26c731d65", + "manifestDigest": "sha256:2731251dc34951c0e50fcc643b4c5f74922dad1a5d98f302b504cf46cd5d9368", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tags": [ + "stereoscope-fixture-image-simple:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + ], + "imageSize": 38, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "digest": "sha256:e158b57d6f5a96ef5fd22f2fe76c70b5ba6ff5b2619f9d83125b2aad0492ac7b", + "size": 22 + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "digest": "sha256:da21056e7bf4308ecea0c0836848a7fe92f38fdcf35bc09ee6d98e7ab7beeebf", + "size": 16 + } + ], + "manifest": "eyJzY2hlbWFWZXJzaW9uIjoyLCJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZG9ja2VyLmRpc3RyaWJ1dGlvbi5tYW5pZmVzdC52Mitqc29uIiwiY29uZmlnIjp7Im1lZGlhVHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5kb2NrZXIuY29udGFpbmVyLmltYWdlLnYxK2pzb24iLCJzaXplIjoxNTg2LCJkaWdlc3QiOiJzaGEyNTY6OTJmYmRkNzEzMDJjNjY2MDI5ZjExZWY1ZWE0OWNhYmE2ZTk3ZGFhODZjYjRkY2U3ODc0Mzc3YjI2YzczMWQ2NSJ9LCJsYXllcnMiOlt7Im1lZGlhVHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5kb2NrZXIuaW1hZ2Uucm9vdGZzLmRpZmYudGFyLmd6aXAiLCJzaXplIjoyMDQ4LCJkaWdlc3QiOiJzaGEyNTY6ZTE1OGI1N2Q2ZjVhOTZlZjVmZDIyZjJmZTc2YzcwYjViYTZmZjViMjYxOWY5ZDgzMTI1YjJhYWQwNDkyYWM3YiJ9LHsibWVkaWFUeXBlIjoiYXBwbGljYXRpb24vdm5kLmRvY2tlci5pbWFnZS5yb290ZnMuZGlmZi50YXIuZ3ppcCIsInNpemUiOjIwNDgsImRpZ2VzdCI6InNoYTI1NjpkYTIxMDU2ZTdiZjQzMDhlY2VhMGMwODM2ODQ4YTdmZTkyZjM4ZmRjZjM1YmMwOWVlNmQ5OGU3YWI3YmVlZWJmIn1dfQ==", + "config": "eyJhcmNoaXRlY3R1cmUiOiJhbWQ2NCIsImNvbmZpZyI6eyJIb3N0bmFtZSI6IiIsIkRvbWFpbm5hbWUiOiIiLCJVc2VyIjoiIiwiQXR0YWNoU3RkaW4iOmZhbHNlLCJBdHRhY2hTdGRvdXQiOmZhbHNlLCJBdHRhY2hTdGRlcnIiOmZhbHNlLCJUdHkiOmZhbHNlLCJPcGVuU3RkaW4iOmZhbHNlLCJTdGRpbk9uY2UiOmZhbHNlLCJFbnYiOlsiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iXSwiQ21kIjpudWxsLCJJbWFnZSI6InNoYTI1Njo3MDRjZGI0ZDViYmNlMDhjNzI1N2I0OTUxMWM5YzBlYTc2N2UwNzdmZDhiOGIzNDUxOGMzNjg3YTdmZjFlNTlkIiwiVm9sdW1lcyI6bnVsbCwiV29ya2luZ0RpciI6IiIsIkVudHJ5cG9pbnQiOm51bGwsIk9uQnVpbGQiOm51bGwsIkxhYmVscyI6bnVsbH0sImNvbnRhaW5lcl9jb25maWciOnsiSG9zdG5hbWUiOiIiLCJEb21haW5uYW1lIjoiIiwiVXNlciI6IiIsIkF0dGFjaFN0ZGluIjpmYWxzZSwiQXR0YWNoU3Rkb3V0IjpmYWxzZSwiQXR0YWNoU3RkZXJyIjpmYWxzZSwiVHR5IjpmYWxzZSwiT3BlblN0ZGluIjpmYWxzZSwiU3RkaW5PbmNlIjpmYWxzZSwiRW52IjpbIlBBVEg9L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluIl0sIkNtZCI6WyIvYmluL3NoIiwiLWMiLCIjKG5vcCkgQUREIGZpbGU6ZGYzYjc0NGY1NGE5YjE2YjliOWFlZDQwZTNlOThkOWNhMmI0OWY1YTc3ZDlmYThhOTc2OTBkN2JhZjU4ODgyMCBpbiAvc29tZWZpbGUtMi50eHQgIl0sIkltYWdlIjoic2hhMjU2OjcwNGNkYjRkNWJiY2UwOGM3MjU3YjQ5NTExYzljMGVhNzY3ZTA3N2ZkOGI4YjM0NTE4YzM2ODdhN2ZmMWU1OWQiLCJWb2x1bWVzIjpudWxsLCJXb3JraW5nRGlyIjoiIiwiRW50cnlwb2ludCI6bnVsbCwiT25CdWlsZCI6bnVsbCwiTGFiZWxzIjpudWxsfSwiY3JlYXRlZCI6IjIwMjEtMDMtMTNUMTY6MTU6NTAuMDM2MDAwNloiLCJkb2NrZXJfdmVyc2lvbiI6IjIwLjEwLjIiLCJoaXN0b3J5IjpbeyJjcmVhdGVkIjoiMjAyMS0wMy0xM1QxNjoxNTo0OS44NjA5MDgyWiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSBBREQgZmlsZTphYzMyZGEyM2Q1MWU4MDFmMDJmOTI0MTIzZWQzMDk5MGViM2YwZmVjMWI5ZWQ0ZjBiMDZjMjRlODhiOWMzNjk1IGluIC9zb21lZmlsZS0xLnR4dCAifSx7ImNyZWF0ZWQiOiIyMDIxLTAzLTEzVDE2OjE1OjUwLjAzNjAwMDZaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgIyhub3ApIEFERCBmaWxlOmRmM2I3NDRmNTRhOWIxNmI5YjlhZWQ0MGUzZTk4ZDljYTJiNDlmNWE3N2Q5ZmE4YTk3NjkwZDdiYWY1ODg4MjAgaW4gL3NvbWVmaWxlLTIudHh0ICJ9XSwib3MiOiJsaW51eCIsInJvb3RmcyI6eyJ0eXBlIjoibGF5ZXJzIiwiZGlmZl9pZHMiOlsic2hhMjU2OmUxNThiNTdkNmY1YTk2ZWY1ZmQyMmYyZmU3NmM3MGI1YmE2ZmY1YjI2MTlmOWQ4MzEyNWIyYWFkMDQ5MmFjN2IiLCJzaGEyNTY6ZGEyMTA1NmU3YmY0MzA4ZWNlYTBjMDgzNjg0OGE3ZmU5MmYzOGZkY2YzNWJjMDllZTZkOThlN2FiN2JlZWViZiJdfX0=", + "scope": "Squashed" + } + }, + "distro": { + "name": "", + "version": "", + "idLike": "" + }, + "descriptor": { + "name": "syft", + "version": "[not provided]" + }, + "schema": { + "version": "1.0.4", + "url": "https://raw.githubusercontent.com/anchore/syft/main/schema/json/schema-1.0.4.json" + } +} diff --git a/internal/presenter/packages/test-fixtures/snapshot/stereoscope-fixture-image-simple.golden b/internal/presenter/packages/test-fixtures/snapshot/stereoscope-fixture-image-simple.golden new file mode 100644 index 0000000000000000000000000000000000000000..24d879f4948af2cdd6b512a7048d61847316ec24 GIT binary patch literal 16896 zcmeHOZExE)5ccQ&3Qzm80kO^Z7X$myH3eFrXofcHfCWXt*F>u=8IoKy2=d=|vYpg% z(YUQ_BV8#3u_#eT@;Oq+d+x+})LL=x5f8{nL!z=&aj6kQl2XqpHVVfe0$2D~rY-BA5KcDNKW8Yd|1GfY7W4 zi!tV7j)sT|uo>c?wqjW{CNDzu7S3XRo{g`vr)Av~W*XpWsBv6Qp~A=VUv;RKcOEs3 zaTl)|pBLFUnn@jwvfFFr9EP%aF;wvA>f&j0d3$~`3&mYIi_%HqpcAY5Pm1^1_$>SL z(dpCQNAtQGO-g4bquS=hc&&U}{CHz=X<3BR?9Ea3cnZ**Wg{q#>I)d;z`?&?el5z` zZ~aHd$NiX3!q`V@C1a5@qb(Lz1Gd346ll=OYiEdMI&veW*U>1WrO?PrYa&-l5!BC% z{-`dep_Miu!{$TNZ(DyhHRmn3^@Sl^jKNepZ<*)Tx`33Egi8?2F?QOaV5E=%Ng2Je zu(f0yD@TQrM#hK(*B*NQx}40Xq0Yv|d@?!8{w}L`d2xQ6uN3v9XsXLunYXiRS>vSm zW1dd{gk|x$v0<`${Q4;KrF#c6;(e&Wt@jdBM4SLZpXi8jh&&hu9-=iOXz7hn!hwtDf>e@GDJ>BW?6nts*q#5O zNNn;ym?Zx9Ftg+;`;6ki}f#eC^K)YwH{H)RE+=GoPK{43K# zB@pnpWWm2KiQ2aop1a{A`vceCR25s|0~!-NJ;k=7_!8c_@mTMZOt zL>380SWwDpU<)piS4ftfQBv@f&Iaui!IoM>ZqxK5?Xeb!t z5!1vtX+i3Ws|6Kc#6^%cGKy4i!61he@Uct*Asb*fKvncEQf?j6AqcNkkj6?ILa;G= zbDem&!x-iRwbC_MvzPo22>L*}K+69(z#QnT|GngYwC+gae-EJkUdsPC1j-M$jn3=8 zyZ;aFKiB_HFi`bGr5|5L)Da;l%%ZE8Ji8 z90YqFuQKPeo#X<5cl0vM%2RW`3}G~(3T5reSs29pLz~|_$lC<+L7h)$kfk1|MUF9| zRdm>4rcH$4gi~6JXdy;KqzMcMCK%+eQ|2HqfoqMeR2;rY