summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngy döt Net <ingy@ingy.net>2020-06-01 10:31:58 -0700
committerIngy döt Net <ingy@ingy.net>2020-06-01 11:19:43 -0700
commit551356de1bc8ef431fcd1b32624bec0fa1612b09 (patch)
tree491938f5a1d6c95e94afdd677716d15c257d2db5
parentabba6f784ef213769be4d4acedb7197a924c5c26 (diff)
downloadlibyaml-git-run-test-suite-2.tar.gz
Support a default environmentrun-test-suite-2
The env files were renamed to be more obvious. Now pin-* files are symlinks to env-* files. If a pinning can't be found using the current mainline commit, we use env/default default which is a symlink to the most recent. This will probably work most of the time. A big warning box will be printed showing what happened and where to get more info. To try this out: git checkout ingy.test-suite-support export LIBYAML_TEST_SUITE_RUN_BRANCH=run-test-suite-2 ln -fs .makefile GNUmakefile make distclean make test-suite
-rw-r--r--Makefile6
l---------env/default1
-rw-r--r--env/env-2020-05-24-test-suite-9fe5172ca31 (renamed from env/blacklist-001)108
l---------env/pin-0.2.4-72e2f75277ff88ad1fb8a81cf422df06bf3715781
-rw-r--r--env/pin-0032321756cee86a67171de425267c1d0d4060926
l---------env/pin-0092c82664d2e7f2f0faf21de660a7f1d1e544001
l---------env/pin-55a405c42069b05b20c1e53d3ed8c099d48150951
l---------env/pin-9deee01508bb3b8ad25822f53d91d9f54eae9a0b1
l---------env/pin-master-9deee01508bb3b8ad25822f53d91d9f54eae9a0b1
-rw-r--r--env/pin-sample25
-rwxr-xr-xlookup62
11 files changed, 125 insertions, 88 deletions
diff --git a/Makefile b/Makefile
index d338e8c..d6b01a2 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,11 @@ test: data
[[ "$(debug)" ]] && export LIBYAML_TEST_SUITE_DEBUG=1
export LIBYAML_TEST_SUITE_ENV=$$(./lookup env)
[[ $$LIBYAML_TEST_SUITE_ENV ]] || exit 1
- prove -v test/
+ set +ex
+ (set -x; prove -v test/)
+ if [[ $$LIBYAML_TEST_SUITE_ENV == env/default ]]; then
+ ./lookup default-warning
+ fi
test-all:
prove -v test/test-all.sh
diff --git a/env/default b/env/default
new file mode 120000
index 0000000..033d08c
--- /dev/null
+++ b/env/default
@@ -0,0 +1 @@
+env-2020-05-24-test-suite-9fe5172ca31 \ No newline at end of file
diff --git a/env/blacklist-001 b/env/env-2020-05-24-test-suite-9fe5172ca31
index e39d924..37a6ace 100644
--- a/env/blacklist-001
+++ b/env/env-2020-05-24-test-suite-9fe5172ca31
@@ -1,56 +1,9 @@
#!/bin/bash
-whitelist all
+LIBYAML_TEST_SUITE_DATA_REPO=https://github.com/yaml/yaml-test-suite
+LIBYAML_TEST_SUITE_DATA_COMMIT=9fe5172ca313349ad5b8200f8168de0b0a48ea5d
-blacklist parser "\
-2JQS: Block Mapping with Missing Keys
-2LFX: Spec Example 6.13. Reserved Directives [1.3]
-2SXE: Anchors With Colon in Name
-4ABK: Spec Example 7.17. Flow Mapping Separate Values
-4MUZ: Flow mapping colon on line after key
-5MUD: Colon and adjacent value on next line
-6BCT: Spec Example 6.3. Separation Spaces
-6LVF: Spec Example 6.13. Reserved Directives
-6M2F: Aliases in Explicit Block Mapping
-7Z25: Bare document after document end marker
-8XYN: Anchor with unicode character
-9MMW: Spec Example 7.21. Single Pair Implicit Entries [1.3
-9SA2: Multiline double quoted flow mapping key
-A2M4: Spec Example 6.2. Indentation Indicators
-BEC7: Spec Example 6.14. “YAML” directive
-DBG4: Spec Example 7.10. Plain Characters
-DK3J: Zero indented block scalar with line that looks like a comment
-FP8R: Zero indented block scalar
-FRK4: Spec Example 7.3. Completely Empty Flow Nodes
-HWV9: Document-end marker
-K3WX: Colon and adjacent value after comment on next line
-KZN9: Spec Example 7.21. Single Pair Implicit Entries
-M7A3: Spec Example 9.3. Bare Documents
-NHX8: Empty Lines at End of Document
-NJ66: Multiline plain flow mapping key
-Q5MG: Tab at beginning of line followed by a flow mapping
-QT73: Comment and document-end marker
-R4YG: Spec Example 8.2. Block Indentation Indicator
-S3PD: Spec Example 8.18. Implicit Block Mapping Entries
-UT92: Spec Example 9.4. Explicit Documents
-W4TN: Spec Example 9.5. Directives Documents
-W5VH: Allowed characters in alias
-WZ62: Spec Example 7.2. Empty Content
-Y2GN: Anchor with colon in the middle
-"
-
-blacklist parser-error "\
-9C9N: Wrong indented flow sequence
-9HCY: Need document footer before directives
-9JBA: Invalid comment after end of flow sequence
-CVW2: Invalid comment after comma
-EB22: Missing document-end marker before directive
-QB6E: Wrong indented multiline quoted scalar
-RHX7: YAML directive without document end marker
-S98Z: Block scalar with more spaces than first content line
-SU5Z: Comment without whitespace after doublequoted scalar
-X4QW: Comment without whitespace after block scalar indicator
-"
+whitelist all
blacklist emitter "\
26DV: Whitespace around colon in mappings
@@ -65,6 +18,7 @@ blacklist emitter "\
4QFQ: Spec Example 8.2. Block Indentation Indicator [1.3]
52DL: Explicit Non-Specific Tag [1.3]
565N: Construct Binary
+5T43: Colon at the beginning of adjacent flow scalar
5TYM: Spec Example 6.21. Local Tag Prefix
5WE3: Spec Example 8.17. Explicit Block Mapping Entries
6CK3: Spec Example 6.26. Tag Shorthands
@@ -128,3 +82,57 @@ XLQ9: Multiline scalar that looks like a YAML directive
Y2GN: Anchor with colon in the middle
ZWK4: Key with anchor after missing explicit mapping value
"
+
+blacklist parser "\
+2JQS: Block Mapping with Missing Keys
+2LFX: Spec Example 6.13. Reserved Directives [1.3]
+2SXE: Anchors With Colon in Name
+4ABK: Spec Example 7.17. Flow Mapping Separate Values
+4MUZ: Flow mapping colon on line after key
+5MUD: Colon and adjacent value on next line
+5T43: Colon at the beginning of adjacent flow scalar
+6BCT: Spec Example 6.3. Separation Spaces
+6LVF: Spec Example 6.13. Reserved Directives
+6M2F: Aliases in Explicit Block Mapping
+7Z25: Bare document after document end marker
+8XYN: Anchor with unicode character
+9MMW: Spec Example 7.21. Single Pair Implicit Entries [1.3
+9SA2: Multiline double quoted flow mapping key
+A2M4: Spec Example 6.2. Indentation Indicators
+BEC7: Spec Example 6.14. “YAML” directive
+DBG4: Spec Example 7.10. Plain Characters
+DK3J: Zero indented block scalar with line that looks like a comment
+FP8R: Zero indented block scalar
+FRK4: Spec Example 7.3. Completely Empty Flow Nodes
+HWV9: Document-end marker
+JR7V: Question marks in scalars
+K3WX: Colon and adjacent value after comment on next line
+KZN9: Spec Example 7.21. Single Pair Implicit Entries
+M7A3: Spec Example 9.3. Bare Documents
+NHX8: Empty Lines at End of Document
+NJ66: Multiline plain flow mapping key
+Q5MG: Tab at beginning of line followed by a flow mapping
+QT73: Comment and document-end marker
+R4YG: Spec Example 8.2. Block Indentation Indicator
+S3PD: Spec Example 8.18. Implicit Block Mapping Entries
+UT92: Spec Example 9.4. Explicit Documents
+W4TN: Spec Example 9.5. Directives Documents
+W5VH: Allowed characters in alias
+WZ62: Spec Example 7.2. Empty Content
+Y2GN: Anchor with colon in the middle
+"
+
+blacklist parser-error "\
+9C9N: Wrong indented flow sequence
+9HCY: Need document footer before directives
+9JBA: Invalid comment after end of flow sequence
+CVW2: Invalid comment after comma
+EB22: Missing document-end marker before directive
+QB6E: Wrong indented multiline quoted scalar
+RHX7: YAML directive without document end marker
+S98Z: Block scalar with more spaces than first content line
+5T43: Colon at the beginning of adjacent flow scalar
+SU5Z: Comment without whitespace after doublequoted scalar
+U99R: Invalid comma in tag
+X4QW: Comment without whitespace after block scalar indicator
+"
diff --git a/env/pin-0.2.4-72e2f75277ff88ad1fb8a81cf422df06bf371578 b/env/pin-0.2.4-72e2f75277ff88ad1fb8a81cf422df06bf371578
new file mode 120000
index 0000000..033d08c
--- /dev/null
+++ b/env/pin-0.2.4-72e2f75277ff88ad1fb8a81cf422df06bf371578
@@ -0,0 +1 @@
+env-2020-05-24-test-suite-9fe5172ca31 \ No newline at end of file
diff --git a/env/pin-0032321756cee86a67171de425267c1d0d406092 b/env/pin-0032321756cee86a67171de425267c1d0d406092
deleted file mode 100644
index 246762c..0000000
--- a/env/pin-0032321756cee86a67171de425267c1d0d406092
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-LIBYAML_TEST_SUITE_DATA_REPO=https://github.com/yaml/yaml-test-suite
-LIBYAML_TEST_SUITE_DATA_COMMIT=data-2019-09-17
-
-source "$ENV/blacklist-001"
diff --git a/env/pin-0092c82664d2e7f2f0faf21de660a7f1d1e54400 b/env/pin-0092c82664d2e7f2f0faf21de660a7f1d1e54400
deleted file mode 120000
index 3ff882c..0000000
--- a/env/pin-0092c82664d2e7f2f0faf21de660a7f1d1e54400
+++ /dev/null
@@ -1 +0,0 @@
-pin-0032321756cee86a67171de425267c1d0d406092 \ No newline at end of file
diff --git a/env/pin-55a405c42069b05b20c1e53d3ed8c099d4815095 b/env/pin-55a405c42069b05b20c1e53d3ed8c099d4815095
deleted file mode 120000
index 3ff882c..0000000
--- a/env/pin-55a405c42069b05b20c1e53d3ed8c099d4815095
+++ /dev/null
@@ -1 +0,0 @@
-pin-0032321756cee86a67171de425267c1d0d406092 \ No newline at end of file
diff --git a/env/pin-9deee01508bb3b8ad25822f53d91d9f54eae9a0b b/env/pin-9deee01508bb3b8ad25822f53d91d9f54eae9a0b
deleted file mode 120000
index 3ff882c..0000000
--- a/env/pin-9deee01508bb3b8ad25822f53d91d9f54eae9a0b
+++ /dev/null
@@ -1 +0,0 @@
-pin-0032321756cee86a67171de425267c1d0d406092 \ No newline at end of file
diff --git a/env/pin-master-9deee01508bb3b8ad25822f53d91d9f54eae9a0b b/env/pin-master-9deee01508bb3b8ad25822f53d91d9f54eae9a0b
new file mode 120000
index 0000000..033d08c
--- /dev/null
+++ b/env/pin-master-9deee01508bb3b8ad25822f53d91d9f54eae9a0b
@@ -0,0 +1 @@
+env-2020-05-24-test-suite-9fe5172ca31 \ No newline at end of file
diff --git a/env/pin-sample b/env/pin-sample
deleted file mode 100644
index 7ae7cbc..0000000
--- a/env/pin-sample
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# This pinning file can be used for development (before committing to master)
-# like this:
-#
-# make test-suite LIBYAML_TEST_SUITE_ENV=pin
-
-# yaml-test-suite info:
-LIBYAML_TEST_SUITE_DATA_REPO=https://github.com/yaml/yaml-test-suite
-LIBYAML_TEST_SUITE_DATA_COMMIT=data-2019-09-17
-
-# Start with a base blacklist (optional):
-source "$ENV/blacklist-001"
-
-# Add to blacklists:
-blacklist parser XXX1 XXX2
-blacklist parser-error XXX3 XXX4
-blacklist emitter XXX5 XXX6
-
-# Whitelist (un-blacklist) certain tests:
-whitelist parser AAA1 AAA2
-whitelist parser-error AAA3 AAA4
-whitelist emitter AAA5 AAA6
-
-whitelist parser 2JQS
diff --git a/lookup b/lookup
index df0d5bb..cd15707 100755
--- a/lookup
+++ b/lookup
@@ -22,11 +22,17 @@ main() {
base=$(cd ../.. && pwd)
head=$(get-head-commit)
+ if [[ $lookup == default-warning ]]; then
+ default-warning
+ exit
+ fi
+
if [[ ${LIBYAML_TEST_SUITE_ENV-} ]]; then
lookup-env
else
[[ $env ]] || lookup-log
[[ $env ]] || lookup-local
+ [[ $env ]] || lookup-default
fi
if [[ $lookup == data ]]; then
@@ -103,15 +109,25 @@ lookup-log() {
lookup-local() {
debug "Looking for local env for '$head'"
- local e=env/pin-$head
+ e=$(echo env/pin-*-$head)
if [[ -e $e ]]; then
env=$e
- source "./env/pin-$head"
+ source "$env"
found
fi
}
+lookup-default() {
+ debug "Using default environment 'env/default'"
+
+ [[ $lookup == env ]] && default-warning
+
+ env=env/default
+ source "$env"
+ found
+}
+
found() {
debug "Found '$env'"
@@ -119,14 +135,54 @@ found() {
commit=$LIBYAML_TEST_SUITE_DATA_COMMIT
}
+default-warning() (
+ main_branch=$(cd "$base" && git rev-parse --abbrev-ref HEAD)
+ test_branch=$(git rev-parse --abbrev-ref HEAD)
+
+ default=env/default
+ while [[ -h $default ]]; do
+ default=$(readlink "$default")
+ done
+
+ message-in-a-box "
+WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+
+Using the default test-suite env:
+
+ env/$default
+
+No test-suite environment info was found for the HEAD of '$main_branch':
+
+ $head
+
+This info is kept in tests/run-test-suite/env/
+
+For more information, see:
+
+* https://github.com/yaml/libyaml/blob/$test_branch/ReadMe.md
+* https://github.com/yaml/libyaml/tree/$test_branch/env
+"
+)
+
whitelist() (:)
blacklist() (:)
die() { echo "Died: $*" >&2; exit 1; }
warn() ( echo "$*" >&2 )
debug() (
- if [[ ${LIBYAML_TEST_SUITE_DEBUG-} ]]; then
+ if [[ ${LIBYAML_TEST_SUITE_DEBUG-} && $lookup != default-warning ]]; then
warn "[DEBUG] $*"
fi
)
+message-in-a-box() (
+ len=${COLUMNS:-$(tput cols)}
+ len=${len:-80}
+ line=$(eval "printf '*%.0s' {1..$len}")
+
+ (
+ echo "$line"
+ echo "* ${1//$'\n'/$'\n'* }"
+ echo "$line"
+ ) >&2
+)
main "$@"