aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorVictor Romero <romerosanchezv@gmail.com>2021-01-07 18:04:11 -0800
committerGitHub <noreply@github.com>2021-01-07 18:04:11 -0800
commit2a42024b53ebb512fb5dd63c523338bf26c8489c (patch)
tree3941b7e312699c3ae6e45a036360cabd8a6565f3 /scripts
parentd717d4119e51d24787ee21a0ae4d8873e0889c93 (diff)
downloadvcpkg-2a42024b53ebb512fb5dd63c523338bf26c8489c.tar.gz
vcpkg-2a42024b53ebb512fb5dd63c523338bf26c8489c.zip
[vcpkg] Add commands to maintain and verify versions db integrity (#14999)
* [vcpkg] Add x-ci-verify-versions command * Code cleanup * Remove port version splitting from x-history * Fix wrong message on success * Parallelize versions file generator * Use cpu_count()/2 to avoid crashes * Check db SHA against local SHA * Check baseline version with x-ci-verify-versions and make baseline generator much faster * Implement x-add-version to update version db files * Better checks for x-add-info and make x-ci-verify-versions silent on success * Use find() instead of [] on maps * Create version file if does not exist * Allow redirection of ports/ and port_versions/ * add test ports * WIP end-to-end tests * Change pats in e2e tests * Fix e2e args * e2e once more * Pass ersions feature flag to e2e * Exit with code 1 if there are errors * Files to test for failure cases * Update test files * Add test for x-add-version * fix redirected ports in last test * Add CI check (use dummy data) * Add feature-flags=versions * Ignore subdirectories inside ports * Add --verify-git-trees switch * [vcpkg] Fix build breaks * [x-ci-verify-versions] PR comments * [x-add-version] PR comments * Fix merge conflicts * Modify tests and pipeline * Baselines should only have version-string * Refactor x-add-version * [vcpkg] Fix help message * [vcpkg] Fix minor warnings * `x-add-version --all` doesn't stop on first failure and reduced default verbosity * [vcpkg] Fix default-baseline * Load file instead of using paths provider * Format * Remove ci test * Add fish port for testing * Update version files * Update fish port to cause SHA discrepancy * Test for discrepancy between local SHA and declared SHA * Missing = operator * Check for error message since x-add-version exits with code 0 * Make x-add-version fail with non-zero exit code if not run with --all Co-authored-by: Robert Schumacher <roschuma@microsoft.com> Co-authored-by: Robert Schumacher <ras0219@outlook.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/azure-pipelines/end-to-end-tests-dir/versions.ps175
-rw-r--r--scripts/testing/version-files/default-baseline-1/vcpkg.json8
-rw-r--r--scripts/testing/version-files/default-baseline-2/port_versions/z-/zlib.json14
-rw-r--r--scripts/testing/version-files/default-baseline-2/vcpkg.json8
-rw-r--r--scripts/testing/version-files/port_versions/baseline.json20
-rw-r--r--scripts/testing/version-files/port_versions/c-/cat.json9
-rw-r--r--scripts/testing/version-files/port_versions/d-/dog.json9
-rw-r--r--scripts/testing/version-files/port_versions/d-/duck.json9
-rw-r--r--scripts/testing/version-files/port_versions/m-/mouse.json9
-rw-r--r--scripts/testing/version-files/port_versions_incomplete/baseline.json20
-rw-r--r--scripts/testing/version-files/port_versions_incomplete/c-/cat.json9
-rw-r--r--scripts/testing/version-files/port_versions_incomplete/d-/dog.json9
-rw-r--r--scripts/testing/version-files/port_versions_incomplete/f-/fish.json9
-rw-r--r--scripts/testing/version-files/port_versions_incomplete/m-/mouse.json9
-rw-r--r--scripts/testing/version-files/ports/cat/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports/cat/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports/dog/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports/dog/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports/duck/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports/duck/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports/mouse/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports/mouse/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports_incomplete/cat/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/cat/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports_incomplete/dog/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/dog/vcpkg.json5
-rw-r--r--scripts/testing/version-files/ports_incomplete/duck/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/duck/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports_incomplete/ferret/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/ferret/vcpkg.json4
-rw-r--r--scripts/testing/version-files/ports_incomplete/fish/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/fish/vcpkg.json5
-rw-r--r--scripts/testing/version-files/ports_incomplete/mouse/portfile.cmake1
-rw-r--r--scripts/testing/version-files/ports_incomplete/mouse/vcpkg.json4
34 files changed, 269 insertions, 0 deletions
diff --git a/scripts/azure-pipelines/end-to-end-tests-dir/versions.ps1 b/scripts/azure-pipelines/end-to-end-tests-dir/versions.ps1
new file mode 100644
index 000000000..5d61b2101
--- /dev/null
+++ b/scripts/azure-pipelines/end-to-end-tests-dir/versions.ps1
@@ -0,0 +1,75 @@
+. $PSScriptRoot/../end-to-end-tests-prelude.ps1
+
+# Test verify versions
+mkdir $VersionFilesRoot
+Copy-Item -Recurse "scripts/testing/version-files/port_versions_incomplete" $VersionFilesRoot
+$portsRedirectArgsOK = @(
+ "--feature-flags=versions",
+ "--x-builtin-ports-root=scripts/testing/version-files/ports",
+ "--x-builtin-port-versions-dir=scripts/testing/version-files/port_versions"
+)
+$portsRedirectArgsIncomplete = @(
+ "--feature-flags=versions",
+ "--x-builtin-ports-root=scripts/testing/version-files/ports_incomplete",
+ "--x-builtin-port-versions-dir=$VersionFilesRoot/port_versions_incomplete"
+)
+$CurrentTest = "x-verify-ci-versions (All files OK)"
+Write-Host $CurrentTest
+./vcpkg $portsRedirectArgsOK x-ci-verify-versions --verbose
+Throw-IfFailed
+
+$CurrentTest = "x-verify-ci-versions (Incomplete)"
+./vcpkg $portsRedirectArgsIncomplete x-ci-verify-versions --verbose
+Throw-IfNotFailed
+
+$CurrentTest = "x-add-version cat"
+# Do not fail if there's nothing to update
+./vcpkg $portsRedirectArgsIncomplete x-add-version cat
+Throw-IfFailed
+
+$CurrentTest = "x-add-version dog"
+# Local version is not in baseline and versions file
+./vcpkg $portsRedirectArgsIncomplete x-add-version dog
+Throw-IfFailed
+
+$CurrentTest = "x-add-version duck"
+# Missing versions file
+./vcpkg $portsRedirectArgsIncomplete x-add-version duck
+Throw-IfFailed
+
+$CurrentTest = "x-add-version ferret"
+# Missing versions file and missing baseline entry
+./vcpkg $portsRedirectArgsIncomplete x-add-version ferret
+Throw-IfFailed
+
+$CurrentTest = "x-add-version fish (must fail)"
+# Discrepancy between local SHA and SHA in fish.json. Requires --overwrite-version.
+$out = ./vcpkg $portsRedirectArgsIncomplete x-add-version fish
+Throw-IfNotFailed
+$CurrentTest = "x-add-version fish --overwrite-version"
+./vcpkg $portsRedirectArgsIncomplete x-add-version fish --overwrite-version
+Throw-IfFailed
+
+$CurrentTest = "x-add-version mouse"
+# Missing baseline entry
+./vcpkg $portsRedirectArgsIncomplete x-add-version mouse
+Throw-IfFailed
+# Validate changes
+./vcpkg $portsRedirectArgsIncomplete x-ci-verify-versions --verbose
+Throw-IfFailed
+
+$CurrentTest = "default baseline"
+$out = ./vcpkg $commonArgs "--feature-flags=versions" install --x-manifest-root=scripts/testing/version-files/default-baseline-1
+Throw-IfNotFailed
+# if ($out -notmatch "Error: while checking out baseline" -or $out -notmatch " does not exist in ")
+# {
+# $out
+# throw "Expected to fail due to missing baseline"
+# }
+
+git fetch https://github.com/vicroms/test-registries
+$CurrentTest = "default baseline"
+./vcpkg $commonArgs "--feature-flags=versions" install `
+ "--x-manifest-root=scripts/testing/version-files/default-baseline-2" `
+ "--x-builtin-port-versions-dir=scripts/testing/version-files/default-baseline-2/port_versions"
+Throw-IfFailed
diff --git a/scripts/testing/version-files/default-baseline-1/vcpkg.json b/scripts/testing/version-files/default-baseline-1/vcpkg.json
new file mode 100644
index 000000000..f6d902393
--- /dev/null
+++ b/scripts/testing/version-files/default-baseline-1/vcpkg.json
@@ -0,0 +1,8 @@
+{
+ "name": "default-baseline-test",
+ "version-string": "0",
+ "$x-default-baseline": "fca18ba3572f8aebe3b8158c359db62a7e26134e",
+ "dependencies": [
+ "zlib"
+ ]
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/default-baseline-2/port_versions/z-/zlib.json b/scripts/testing/version-files/default-baseline-2/port_versions/z-/zlib.json
new file mode 100644
index 000000000..f5ee7cb9d
--- /dev/null
+++ b/scripts/testing/version-files/default-baseline-2/port_versions/z-/zlib.json
@@ -0,0 +1,14 @@
+{
+ "versions": [
+ {
+ "git-tree": "7bb2b2f3783303a4dd41163553fe4cc103dc9262",
+ "version-string": "1.2.11",
+ "port-version": 9
+ },
+ {
+ "git-tree": "4927735fa9baca564ebddf6e6880de344b20d7a8",
+ "version-string": "1.2.11",
+ "port-version": 8
+ }
+ ]
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/default-baseline-2/vcpkg.json b/scripts/testing/version-files/default-baseline-2/vcpkg.json
new file mode 100644
index 000000000..1e41002ff
--- /dev/null
+++ b/scripts/testing/version-files/default-baseline-2/vcpkg.json
@@ -0,0 +1,8 @@
+{
+ "name": "default-baseline-test",
+ "version-string": "0",
+ "$x-default-baseline": "cbd5a68012471f820b7cf28d618199b4a4d89c58",
+ "dependencies": [
+ "zlib"
+ ]
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/port_versions/baseline.json b/scripts/testing/version-files/port_versions/baseline.json
new file mode 100644
index 000000000..bfe49f984
--- /dev/null
+++ b/scripts/testing/version-files/port_versions/baseline.json
@@ -0,0 +1,20 @@
+{
+ "default": {
+ "cat": {
+ "version-string": "1.0",
+ "port-version": 0
+ },
+ "dog": {
+ "version-string": "2001-01-01",
+ "port-version": 0
+ },
+ "duck": {
+ "version-string": "mallard",
+ "port-version": 0
+ },
+ "mouse": {
+ "version-string": "1.0.0",
+ "port-version": 0
+ }
+ }
+}
diff --git a/scripts/testing/version-files/port_versions/c-/cat.json b/scripts/testing/version-files/port_versions/c-/cat.json
new file mode 100644
index 000000000..e39cd6d4e
--- /dev/null
+++ b/scripts/testing/version-files/port_versions/c-/cat.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "5dd257451526d5b9e560f5f35d7029ba40d88587",
+ "version": "1.0",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions/d-/dog.json b/scripts/testing/version-files/port_versions/d-/dog.json
new file mode 100644
index 000000000..49c086c38
--- /dev/null
+++ b/scripts/testing/version-files/port_versions/d-/dog.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "e170a2ed0da7ba5d434c4a0a98ffd7a3159e3200",
+ "version-date": "2001-01-01",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions/d-/duck.json b/scripts/testing/version-files/port_versions/d-/duck.json
new file mode 100644
index 000000000..4f4b209e2
--- /dev/null
+++ b/scripts/testing/version-files/port_versions/d-/duck.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "0a52a9d722c75b3bfe47d5f5db6c9eb1a64af156",
+ "version-string": "mallard",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions/m-/mouse.json b/scripts/testing/version-files/port_versions/m-/mouse.json
new file mode 100644
index 000000000..139c8450f
--- /dev/null
+++ b/scripts/testing/version-files/port_versions/m-/mouse.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "55ed624191e0a1905bd97af29fdf6a1d7f4e6d7c",
+ "version-semver": "1.0.0",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions_incomplete/baseline.json b/scripts/testing/version-files/port_versions_incomplete/baseline.json
new file mode 100644
index 000000000..aadd634fc
--- /dev/null
+++ b/scripts/testing/version-files/port_versions_incomplete/baseline.json
@@ -0,0 +1,20 @@
+{
+ "default": {
+ "cat": {
+ "version-string": "1.0",
+ "port-version": 0
+ },
+ "dog": {
+ "version-string": "2001-01-01",
+ "port-version": 0
+ },
+ "duck": {
+ "version-string": "mallard",
+ "port-version": 0
+ },
+ "fish": {
+ "version-string": "1.0.0",
+ "port-version": 0
+ }
+ }
+}
diff --git a/scripts/testing/version-files/port_versions_incomplete/c-/cat.json b/scripts/testing/version-files/port_versions_incomplete/c-/cat.json
new file mode 100644
index 000000000..e39cd6d4e
--- /dev/null
+++ b/scripts/testing/version-files/port_versions_incomplete/c-/cat.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "5dd257451526d5b9e560f5f35d7029ba40d88587",
+ "version": "1.0",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions_incomplete/d-/dog.json b/scripts/testing/version-files/port_versions_incomplete/d-/dog.json
new file mode 100644
index 000000000..49c086c38
--- /dev/null
+++ b/scripts/testing/version-files/port_versions_incomplete/d-/dog.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "e170a2ed0da7ba5d434c4a0a98ffd7a3159e3200",
+ "version-date": "2001-01-01",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/port_versions_incomplete/f-/fish.json b/scripts/testing/version-files/port_versions_incomplete/f-/fish.json
new file mode 100644
index 000000000..dc457aabd
--- /dev/null
+++ b/scripts/testing/version-files/port_versions_incomplete/f-/fish.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "cf3be634f203c1b4152b65ec7700d5695a1fca5c",
+ "version-string": "1.0.0",
+ "port-version": 0
+ }
+ ]
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/port_versions_incomplete/m-/mouse.json b/scripts/testing/version-files/port_versions_incomplete/m-/mouse.json
new file mode 100644
index 000000000..139c8450f
--- /dev/null
+++ b/scripts/testing/version-files/port_versions_incomplete/m-/mouse.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "55ed624191e0a1905bd97af29fdf6a1d7f4e6d7c",
+ "version-semver": "1.0.0",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/scripts/testing/version-files/ports/cat/portfile.cmake b/scripts/testing/version-files/ports/cat/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports/cat/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/cat/vcpkg.json b/scripts/testing/version-files/ports/cat/vcpkg.json
new file mode 100644
index 000000000..b87e4a2da
--- /dev/null
+++ b/scripts/testing/version-files/ports/cat/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "cat",
+ "version": "1.0"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/dog/portfile.cmake b/scripts/testing/version-files/ports/dog/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports/dog/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/dog/vcpkg.json b/scripts/testing/version-files/ports/dog/vcpkg.json
new file mode 100644
index 000000000..028447b3e
--- /dev/null
+++ b/scripts/testing/version-files/ports/dog/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "dog",
+ "version-date": "2001-01-01"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/duck/portfile.cmake b/scripts/testing/version-files/ports/duck/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports/duck/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/duck/vcpkg.json b/scripts/testing/version-files/ports/duck/vcpkg.json
new file mode 100644
index 000000000..d780d01bf
--- /dev/null
+++ b/scripts/testing/version-files/ports/duck/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "duck",
+ "version-string": "mallard"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/mouse/portfile.cmake b/scripts/testing/version-files/ports/mouse/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports/mouse/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports/mouse/vcpkg.json b/scripts/testing/version-files/ports/mouse/vcpkg.json
new file mode 100644
index 000000000..fd6cab451
--- /dev/null
+++ b/scripts/testing/version-files/ports/mouse/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "mouse",
+ "version-semver": "1.0.0"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/cat/portfile.cmake b/scripts/testing/version-files/ports_incomplete/cat/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/cat/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/cat/vcpkg.json b/scripts/testing/version-files/ports_incomplete/cat/vcpkg.json
new file mode 100644
index 000000000..b87e4a2da
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/cat/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "cat",
+ "version": "1.0"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/dog/portfile.cmake b/scripts/testing/version-files/ports_incomplete/dog/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/dog/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/dog/vcpkg.json b/scripts/testing/version-files/ports_incomplete/dog/vcpkg.json
new file mode 100644
index 000000000..65465b940
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/dog/vcpkg.json
@@ -0,0 +1,5 @@
+{
+ "name": "dog",
+ "version-date": "2001-01-01",
+ "port-version": 1
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/duck/portfile.cmake b/scripts/testing/version-files/ports_incomplete/duck/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/duck/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/duck/vcpkg.json b/scripts/testing/version-files/ports_incomplete/duck/vcpkg.json
new file mode 100644
index 000000000..d780d01bf
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/duck/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "duck",
+ "version-string": "mallard"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/ferret/portfile.cmake b/scripts/testing/version-files/ports_incomplete/ferret/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/ferret/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/ferret/vcpkg.json b/scripts/testing/version-files/ports_incomplete/ferret/vcpkg.json
new file mode 100644
index 000000000..1b4b5c2c1
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/ferret/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "ferret",
+ "version": "1"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/fish/portfile.cmake b/scripts/testing/version-files/ports_incomplete/fish/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/fish/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/fish/vcpkg.json b/scripts/testing/version-files/ports_incomplete/fish/vcpkg.json
new file mode 100644
index 000000000..f67c10a5a
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/fish/vcpkg.json
@@ -0,0 +1,5 @@
+{
+ "name": "fish",
+ "version-string": "1.0.0",
+ "description": "This description causes an intentional discrepancy between the local SHA and the SHA in fish.json for version 1.0.0"
+} \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/mouse/portfile.cmake b/scripts/testing/version-files/ports_incomplete/mouse/portfile.cmake
new file mode 100644
index 000000000..0015715fb
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/mouse/portfile.cmake
@@ -0,0 +1 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/scripts/testing/version-files/ports_incomplete/mouse/vcpkg.json b/scripts/testing/version-files/ports_incomplete/mouse/vcpkg.json
new file mode 100644
index 000000000..fd6cab451
--- /dev/null
+++ b/scripts/testing/version-files/ports_incomplete/mouse/vcpkg.json
@@ -0,0 +1,4 @@
+{
+ "name": "mouse",
+ "version-semver": "1.0.0"
+} \ No newline at end of file