From bb31fe54a8c7831f027654de47df8b252e40c553 Mon Sep 17 00:00:00 2001 From: Cameron Ackerman Date: Fri, 28 Jun 2024 12:46:34 -0700 Subject: [PATCH] Update fuzz tests to use go fuzz features (#148) * added two fuzz tests for parser functionality * ran test for v7 generation that was accidentally excluded * added fuzz tests for FromBinary family of functions, moved to the codec_tests.go file * refined logic for FromX fuzz functions * fixed logical errors with fuzz tests * removed harden from some other github actions workflows * fix missing codecov token * Apply suggestions from code review * fixed code review feedback * Update .github/workflows/go.yml --- .github/workflows/codeql.yml | 5 - .github/workflows/dependency-review.yml | 5 - .github/workflows/go.yml | 16 +-- codec_test.go | 121 +++++++++++++++--- fuzz.go | 48 ------- generator_test.go | 1 + .../1416586f4a34d02bcb506f6107b40df512b9f2f9 | 1 - ...3b46a7e7b02ec193581e6c9fa2c8a72f50a64e08-1 | 1 - ...50c54bb75fcfdc488f162bf2f0c6dec6103bfa18-5 | 1 - ...69c581ab749cbd56be8684d3a58ac2cfab9af0f4-5 | 1 - ...752bf000e0bff06777dd0d6f0be6353844de678a-3 | 1 - ...a4483762d4ece8466d82cca5cacd35a0829c4e60-2 | 1 - ...d0952c45e0c823fc5cc12bcf7d9b877d150ab523-1 | 1 - .../da39a3ee5e6b4b0d3255bfef95601890afd80709 | 0 ...e2b84d2065846891f18ae109b12e01d224e1c7c3-4 | 1 - ...e320d749435115e874f77420e17d0937e07f69f3-2 | 1 - ...ed132d47d757f6468443a22df8a2a965efb34098-7 | 1 - ...eeefb01f7bb3c627aedb292c994b20f739ffd613-6 | 1 - testdata/corpus/seed_invalid_0 | 1 - testdata/corpus/seed_invalid_1 | 1 - testdata/corpus/seed_invalid_10 | 1 - testdata/corpus/seed_invalid_11 | 1 - testdata/corpus/seed_invalid_12 | 1 - testdata/corpus/seed_invalid_13 | 1 - testdata/corpus/seed_invalid_14 | 1 - testdata/corpus/seed_invalid_15 | 1 - testdata/corpus/seed_invalid_16 | 1 - testdata/corpus/seed_invalid_17 | 1 - testdata/corpus/seed_invalid_18 | 1 - testdata/corpus/seed_invalid_19 | 1 - testdata/corpus/seed_invalid_2 | 1 - testdata/corpus/seed_invalid_20 | 1 - testdata/corpus/seed_invalid_21 | 1 - testdata/corpus/seed_invalid_22 | 1 - testdata/corpus/seed_invalid_23 | 1 - testdata/corpus/seed_invalid_3 | 1 - testdata/corpus/seed_invalid_4 | 1 - testdata/corpus/seed_invalid_5 | 1 - testdata/corpus/seed_invalid_6 | 1 - testdata/corpus/seed_invalid_7 | 1 - testdata/corpus/seed_invalid_8 | 1 - testdata/corpus/seed_invalid_9 | 1 - testdata/corpus/seed_valid_BracedCanonical | 1 - testdata/corpus/seed_valid_BracedHashlike | 1 - testdata/corpus/seed_valid_Canonical | 1 - testdata/corpus/seed_valid_Hashlike | 1 - testdata/corpus/seed_valid_URNCanonical | 1 - testdata/corpus/seed_valid_URNHashlike | 1 - 48 files changed, 104 insertions(+), 133 deletions(-) delete mode 100644 fuzz.go delete mode 100644 testdata/corpus/1416586f4a34d02bcb506f6107b40df512b9f2f9 delete mode 100644 testdata/corpus/3b46a7e7b02ec193581e6c9fa2c8a72f50a64e08-1 delete mode 100644 testdata/corpus/50c54bb75fcfdc488f162bf2f0c6dec6103bfa18-5 delete mode 100644 testdata/corpus/69c581ab749cbd56be8684d3a58ac2cfab9af0f4-5 delete mode 100644 testdata/corpus/752bf000e0bff06777dd0d6f0be6353844de678a-3 delete mode 100644 testdata/corpus/a4483762d4ece8466d82cca5cacd35a0829c4e60-2 delete mode 100644 testdata/corpus/d0952c45e0c823fc5cc12bcf7d9b877d150ab523-1 delete mode 100644 testdata/corpus/da39a3ee5e6b4b0d3255bfef95601890afd80709 delete mode 100644 testdata/corpus/e2b84d2065846891f18ae109b12e01d224e1c7c3-4 delete mode 100644 testdata/corpus/e320d749435115e874f77420e17d0937e07f69f3-2 delete mode 100644 testdata/corpus/ed132d47d757f6468443a22df8a2a965efb34098-7 delete mode 100644 testdata/corpus/eeefb01f7bb3c627aedb292c994b20f739ffd613-6 delete mode 100755 testdata/corpus/seed_invalid_0 delete mode 100755 testdata/corpus/seed_invalid_1 delete mode 100755 testdata/corpus/seed_invalid_10 delete mode 100755 testdata/corpus/seed_invalid_11 delete mode 100755 testdata/corpus/seed_invalid_12 delete mode 100755 testdata/corpus/seed_invalid_13 delete mode 100755 testdata/corpus/seed_invalid_14 delete mode 100755 testdata/corpus/seed_invalid_15 delete mode 100755 testdata/corpus/seed_invalid_16 delete mode 100755 testdata/corpus/seed_invalid_17 delete mode 100755 testdata/corpus/seed_invalid_18 delete mode 100755 testdata/corpus/seed_invalid_19 delete mode 100755 testdata/corpus/seed_invalid_2 delete mode 100755 testdata/corpus/seed_invalid_20 delete mode 100755 testdata/corpus/seed_invalid_21 delete mode 100755 testdata/corpus/seed_invalid_22 delete mode 100755 testdata/corpus/seed_invalid_23 delete mode 100755 testdata/corpus/seed_invalid_3 delete mode 100755 testdata/corpus/seed_invalid_4 delete mode 100755 testdata/corpus/seed_invalid_5 delete mode 100755 testdata/corpus/seed_invalid_6 delete mode 100755 testdata/corpus/seed_invalid_7 delete mode 100755 testdata/corpus/seed_invalid_8 delete mode 100755 testdata/corpus/seed_invalid_9 delete mode 100755 testdata/corpus/seed_valid_BracedCanonical delete mode 100755 testdata/corpus/seed_valid_BracedHashlike delete mode 100755 testdata/corpus/seed_valid_Canonical delete mode 100755 testdata/corpus/seed_valid_Hashlike delete mode 100755 testdata/corpus/seed_valid_URNCanonical delete mode 100755 testdata/corpus/seed_valid_URNHashlike diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9f82006..83593f0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -40,11 +40,6 @@ jobs: # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - - name: Harden Runner - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 - with: - egress-policy: audit - - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 9802580..6c8f8c8 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -16,11 +16,6 @@ jobs: dependency-review: runs-on: ubuntu-latest steps: - - name: Harden Runner - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 - with: - egress-policy: audit - - name: 'Checkout Repository' uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: 'Dependency Review' diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 1bcfde0..06c64ba 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,12 +17,6 @@ jobs: env: GO111MODULE: auto steps: - - - name: Harden Runner - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 - with: - egress-policy: audit - - name: Build uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: @@ -38,7 +32,9 @@ jobs: run: go test ./... -race -coverprofile=coverage.txt -covermode=atomic - name: Coverage - uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1 + uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} build-legacy: name: Build + Test Previous Stable @@ -46,12 +42,6 @@ jobs: env: GO111MODULE: auto steps: - - - name: Harden Runner - uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 - with: - egress-policy: audit - - name: Build uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: diff --git a/codec_test.go b/codec_test.go index 684f521..e14b6ed 100644 --- a/codec_test.go +++ b/codec_test.go @@ -23,10 +23,7 @@ package uuid import ( "bytes" - "flag" - "fmt" - "os" - "path/filepath" + "regexp" "strings" "testing" ) @@ -403,28 +400,110 @@ func BenchmarkParseV4(b *testing.B) { } } -var seedFuzzCorpus = flag.Bool("seed_fuzz_corpus", false, "seed fuzz test corpus") +const uuidPattern = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" -func TestSeedFuzzCorpus(t *testing.T) { - // flag.Parse() is called for us by the test binary. - if !*seedFuzzCorpus { - t.Skip("seeding fuzz test corpus only on demand") +var fromBytesCorpus = [][]byte{ + {0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8}, + {4, 8, 15, 16, 23, 42}, +} + +// FuzzFromBytesFunc is a fuzz testing suite that exercises the FromBytes function +func FuzzFromBytesFunc(f *testing.F) { + for _, seed := range fromBytesCorpus { + f.Add(seed) } - corpusDir := filepath.Join(".", "testdata", "corpus") - writeSeedFile := func(name, data string) error { - path := filepath.Join(corpusDir, name) - return os.WriteFile(path, []byte(data), os.ModePerm) + uuidRegexp, err := regexp.Compile(uuidPattern) + if err != nil { + f.Fatal("uuid regexp failed to compile") } - for _, fst := range fromStringTests { - name := "seed_valid_" + fst.variant - if err := writeSeedFile(name, fst.input); err != nil { - t.Fatal(err) + f.Fuzz(func(t *testing.T, payload []byte) { + u, err := FromBytes(payload) + if len(payload) != Size && err == nil { + t.Errorf("%v did not result in an error", payload) + } + if len(payload) == Size && u == Nil { + t.Errorf("%v resulted in Nil uuid", payload) } + if len(payload) == Size && !uuidRegexp.MatchString(u.String()) { + t.Errorf("%v resulted in invalid uuid %s", payload, u.String()) + } + // otherwise, allow to pass if no panic + }) +} + +// FuzzFromBytesOrNilFunc is a fuzz testing suite that exercises the FromBytesOrNil function +func FuzzFromBytesOrNilFunc(f *testing.F) { + for _, seed := range fromBytesCorpus { + f.Add(seed) } - for i, s := range invalidFromStringInputs { - name := fmt.Sprintf("seed_invalid_%d", i) - if err := writeSeedFile(name, s); err != nil { - t.Fatal(err) + uuidRegexp, err := regexp.Compile(uuidPattern) + if err != nil { + f.Error("uuid regexp failed to compile") + } + f.Fuzz(func(t *testing.T, payload []byte) { + u := FromBytesOrNil(payload) + if len(payload) != Size && u != Nil { + t.Errorf("%v resulted in non Nil uuid %s", payload, u.String()) + } + if len(payload) == Size && u == Nil { + t.Errorf("%v resulted Nil uuid", payload) + } + if len(payload) == Size && !uuidRegexp.MatchString(u.String()) { + t.Errorf("%v resulted in invalid uuid %s", payload, u.String()) + } + // otherwise, allow to pass if no panic + }) +} + +var fromStringCorpus = []string{ + "6ba7b810-9dad-11d1-80b4-00c04fd430c8", + "6BA7B810-9DAD-11D1-80B4-00C04FD430C8", + "{6BA7B810-9DAD-11D1-80B4-00C04FD430C8}", + "urn:uuid:6BA7B810-9DAD-11D1-80B4-00C04FD430C8", + "6BA7B8109DAD11D180B400C04FD430C8", + "{6BA7B8109DAD11D180B400C04FD430C8}", + "urn:uuid:6BA7B8109DAD11D180B400C04FD430C8", +} + +// FuzzFromStringFunc is a fuzz testing suite that exercises the FromString function +func FuzzFromStringFunc(f *testing.F) { + for _, seed := range fromStringCorpus { + f.Add(seed) + } + uuidRegexp, err := regexp.Compile(uuidPattern) + if err != nil { + f.Fatal("uuid regexp failed to compile") + } + f.Fuzz(func(t *testing.T, payload string) { + u, err := FromString(payload) + if err != nil { + if u == Nil { + t.Errorf("%s resulted in Nil uuid", payload) + } + if !uuidRegexp.MatchString(u.String()) { + t.Errorf("%s resulted in invalid uuid %s", payload, u.String()) + } } + // otherwise, allow to pass if no panic + }) +} + +// FuzzFromStringOrNil is a fuzz testing suite that exercises the FromStringOrNil function +func FuzzFromStringOrNilFunc(f *testing.F) { + for _, seed := range fromStringCorpus { + f.Add(seed) + } + uuidRegexp, err := regexp.Compile(uuidPattern) + if err != nil { + f.Error("uuid regexp failed to compile") } + f.Fuzz(func(t *testing.T, payload string) { + u := FromStringOrNil(payload) + if u != Nil { + if !uuidRegexp.MatchString(u.String()) { + t.Errorf("%s resulted in invalid uuid %s", payload, u.String()) + } + } + // otherwise, allow to pass if no panic + }) } diff --git a/fuzz.go b/fuzz.go deleted file mode 100644 index ccf8d4c..0000000 --- a/fuzz.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2018 Andrei Tudor Călin -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -//go:build gofuzz -// +build gofuzz - -package uuid - -// Fuzz implements a simple fuzz test for FromString / UnmarshalText. -// -// To run: -// -// $ go get github.com/dvyukov/go-fuzz/... -// $ cd $GOPATH/src/github.com/gofrs/uuid -// $ go-fuzz-build github.com/gofrs/uuid -// $ go-fuzz -bin=uuid-fuzz.zip -workdir=./testdata -// -// If you make significant changes to FromString / UnmarshalText and add -// new cases to fromStringTests (in codec_test.go), please run -// -// $ go test -seed_fuzz_corpus -// -// to seed the corpus with the new interesting inputs, then run the fuzzer. -func Fuzz(data []byte) int { - _, err := FromString(string(data)) - if err != nil { - return 0 - } - return 1 -} diff --git a/generator_test.go b/generator_test.go index 70719e4..8d046e7 100644 --- a/generator_test.go +++ b/generator_test.go @@ -611,6 +611,7 @@ func testNewV7(t *testing.T) { t.Run("FaultyRand", makeTestNewV7FaultyRand()) t.Run("FaultyRandWithOptions", makeTestNewV7FaultyRandWithOptions()) t.Run("ShortRandomRead", makeTestNewV7ShortRandomRead()) + t.Run("ShortRandomReadWithOptions", makeTestNewV7ShortRandomReadWithOptions()) t.Run("KSortable", makeTestNewV7KSortable()) t.Run("ClockSequence", makeTestNewV7ClockSequence()) } diff --git a/testdata/corpus/1416586f4a34d02bcb506f6107b40df512b9f2f9 b/testdata/corpus/1416586f4a34d02bcb506f6107b40df512b9f2f9 deleted file mode 100644 index cfb2480..0000000 --- a/testdata/corpus/1416586f4a34d02bcb506f6107b40df512b9f2f9 +++ /dev/null @@ -1 +0,0 @@ -zba7b810-9dad-11d1-80b4-00c04fd4 \ No newline at end of file diff --git a/testdata/corpus/3b46a7e7b02ec193581e6c9fa2c8a72f50a64e08-1 b/testdata/corpus/3b46a7e7b02ec193581e6c9fa2c8a72f50a64e08-1 deleted file mode 100644 index 77b9420..0000000 --- a/testdata/corpus/3b46a7e7b02ec193581e6c9fa2c8a72f50a64e08-1 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80F4-00c"4fd430c8 \ No newline at end of file diff --git a/testdata/corpus/50c54bb75fcfdc488f162bf2f0c6dec6103bfa18-5 b/testdata/corpus/50c54bb75fcfdc488f162bf2f0c6dec6103bfa18-5 deleted file mode 100644 index 17e57ce..0000000 --- a/testdata/corpus/50c54bb75fcfdc488f162bf2f0c6dec6103bfa18-5 +++ /dev/null @@ -1 +0,0 @@ -6ad1DdE8dda91DdE80F400c0Bool30t: \ No newline at end of file diff --git a/testdata/corpus/69c581ab749cbd56be8684d3a58ac2cfab9af0f4-5 b/testdata/corpus/69c581ab749cbd56be8684d3a58ac2cfab9af0f4-5 deleted file mode 100644 index f53c1bd..0000000 --- a/testdata/corpus/69c581ab749cbd56be8684d3a58ac2cfab9af0f4-5 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810Edad1DdE80F400c0Bool30c8 \ No newline at end of file diff --git a/testdata/corpus/752bf000e0bff06777dd0d6f0be6353844de678a-3 b/testdata/corpus/752bf000e0bff06777dd0d6f0be6353844de678a-3 deleted file mode 100644 index 6bcb9a1..0000000 --- a/testdata/corpus/752bf000e0bff06777dd0d6f0be6353844de678a-3 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad1Dd180F400c0Bool30c8 \ No newline at end of file diff --git a/testdata/corpus/a4483762d4ece8466d82cca5cacd35a0829c4e60-2 b/testdata/corpus/a4483762d4ece8466d82cca5cacd35a0829c4e60-2 deleted file mode 100644 index 88427b7..0000000 --- a/testdata/corpus/a4483762d4ece8466d82cca5cacd35a0829c4e60-2 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80F4-F0c"4fd430c8 \ No newline at end of file diff --git a/testdata/corpus/d0952c45e0c823fc5cc12bcf7d9b877d150ab523-1 b/testdata/corpus/d0952c45e0c823fc5cc12bcf7d9b877d150ab523-1 deleted file mode 100644 index b3b8228..0000000 --- a/testdata/corpus/d0952c45e0c823fc5cc12bcf7d9b877d150ab523-1 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b400c0Bool30c8 \ No newline at end of file diff --git a/testdata/corpus/da39a3ee5e6b4b0d3255bfef95601890afd80709 b/testdata/corpus/da39a3ee5e6b4b0d3255bfef95601890afd80709 deleted file mode 100644 index e69de29..0000000 diff --git a/testdata/corpus/e2b84d2065846891f18ae109b12e01d224e1c7c3-4 b/testdata/corpus/e2b84d2065846891f18ae109b12e01d224e1c7c3-4 deleted file mode 100644 index abff4da..0000000 --- a/testdata/corpus/e2b84d2065846891f18ae109b12e01d224e1c7c3-4 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad1DdE80F400c0Bool30c8 \ No newline at end of file diff --git a/testdata/corpus/e320d749435115e874f77420e17d0937e07f69f3-2 b/testdata/corpus/e320d749435115e874f77420e17d0937e07f69f3-2 deleted file mode 100644 index b71e8b2..0000000 --- a/testdata/corpus/e320d749435115e874f77420e17d0937e07f69f3-2 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad1Dd180b400c0Bool30c8 \ No newline at end of file diff --git a/testdata/corpus/ed132d47d757f6468443a22df8a2a965efb34098-7 b/testdata/corpus/ed132d47d757f6468443a22df8a2a965efb34098-7 deleted file mode 100644 index a40ccde..0000000 --- a/testdata/corpus/ed132d47d757f6468443a22df8a2a965efb34098-7 +++ /dev/null @@ -1 +0,0 @@ -6ba1DdE8dDAE8DdE80F400c0BoUl30to \ No newline at end of file diff --git a/testdata/corpus/eeefb01f7bb3c627aedb292c994b20f739ffd613-6 b/testdata/corpus/eeefb01f7bb3c627aedb292c994b20f739ffd613-6 deleted file mode 100644 index 4117221..0000000 --- a/testdata/corpus/eeefb01f7bb3c627aedb292c994b20f739ffd613-6 +++ /dev/null @@ -1 +0,0 @@ -6ad1DdE8dDdE8DdE80F400c0Bool30t: \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_0 b/testdata/corpus/seed_invalid_0 deleted file mode 100755 index 02965f8..0000000 --- a/testdata/corpus/seed_invalid_0 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b4-00c04fd430c \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_1 b/testdata/corpus/seed_invalid_1 deleted file mode 100755 index 3c7f5f6..0000000 --- a/testdata/corpus/seed_invalid_1 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b400c04fd430c \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_10 b/testdata/corpus/seed_invalid_10 deleted file mode 100755 index ec890f3..0000000 --- a/testdata/corpus/seed_invalid_10 +++ /dev/null @@ -1 +0,0 @@ -uuid:urn:6ba7b810-9dad-11d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_11 b/testdata/corpus/seed_invalid_11 deleted file mode 100755 index 266a823..0000000 --- a/testdata/corpus/seed_invalid_11 +++ /dev/null @@ -1 +0,0 @@ -uuid:urn:6ba7b8109dad11d180b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_12 b/testdata/corpus/seed_invalid_12 deleted file mode 100755 index 06f8ad2..0000000 --- a/testdata/corpus/seed_invalid_12 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109-dad-11d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_13 b/testdata/corpus/seed_invalid_13 deleted file mode 100755 index 302b9c3..0000000 --- a/testdata/corpus/seed_invalid_13 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad1-1d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_14 b/testdata/corpus/seed_invalid_14 deleted file mode 100755 index c37896c..0000000 --- a/testdata/corpus/seed_invalid_14 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d18-0b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_15 b/testdata/corpus/seed_invalid_15 deleted file mode 100755 index bb279bd..0000000 --- a/testdata/corpus/seed_invalid_15 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b40-0c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_16 b/testdata/corpus/seed_invalid_16 deleted file mode 100755 index 2c8be7d..0000000 --- a/testdata/corpus/seed_invalid_16 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810+9dad+11d1+80b4+00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_17 b/testdata/corpus/seed_invalid_17 deleted file mode 100755 index 129f752..0000000 --- a/testdata/corpus/seed_invalid_17 +++ /dev/null @@ -1 +0,0 @@ -(6ba7b810-9dad-11d1-80b4-00c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_18 b/testdata/corpus/seed_invalid_18 deleted file mode 100755 index ed41a50..0000000 --- a/testdata/corpus/seed_invalid_18 +++ /dev/null @@ -1 +0,0 @@ -{6ba7b810-9dad-11d1-80b4-00c04fd430c8> \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_19 b/testdata/corpus/seed_invalid_19 deleted file mode 100755 index a296f9e..0000000 --- a/testdata/corpus/seed_invalid_19 +++ /dev/null @@ -1 +0,0 @@ -zba7b810-9dad-11d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_2 b/testdata/corpus/seed_invalid_2 deleted file mode 100755 index e294615..0000000 --- a/testdata/corpus/seed_invalid_2 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b400c04fd430q8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_20 b/testdata/corpus/seed_invalid_20 deleted file mode 100755 index 6e5d2d5..0000000 --- a/testdata/corpus/seed_invalid_20 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad11d180b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_21 b/testdata/corpus/seed_invalid_21 deleted file mode 100755 index 53ebad9..0000000 --- a/testdata/corpus/seed_invalid_21 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad-11d180b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_22 b/testdata/corpus/seed_invalid_22 deleted file mode 100755 index c08019c..0000000 --- a/testdata/corpus/seed_invalid_22 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d1-80b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_23 b/testdata/corpus/seed_invalid_23 deleted file mode 100755 index 8c32062..0000000 --- a/testdata/corpus/seed_invalid_23 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_3 b/testdata/corpus/seed_invalid_3 deleted file mode 100755 index 2afa5c9..0000000 --- a/testdata/corpus/seed_invalid_3 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b4-00c04fd430c8= \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_4 b/testdata/corpus/seed_invalid_4 deleted file mode 100755 index a5f4d4e..0000000 --- a/testdata/corpus/seed_invalid_4 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b4-00c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_5 b/testdata/corpus/seed_invalid_5 deleted file mode 100755 index a78e7ed..0000000 --- a/testdata/corpus/seed_invalid_5 +++ /dev/null @@ -1 +0,0 @@ -{6ba7b810-9dad-11d1-80b4-00c04fd430c8}f \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_6 b/testdata/corpus/seed_invalid_6 deleted file mode 100755 index f14ded5..0000000 --- a/testdata/corpus/seed_invalid_6 +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b4-00c04fd430c800c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_7 b/testdata/corpus/seed_invalid_7 deleted file mode 100755 index 76e0980..0000000 --- a/testdata/corpus/seed_invalid_7 +++ /dev/null @@ -1 +0,0 @@ -ba7b8109dad11d180b400c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_8 b/testdata/corpus/seed_invalid_8 deleted file mode 100755 index f89e744..0000000 --- a/testdata/corpus/seed_invalid_8 +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b400c04fd430c86ba7b8109dad11d180b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_invalid_9 b/testdata/corpus/seed_invalid_9 deleted file mode 100755 index 80ad554..0000000 --- a/testdata/corpus/seed_invalid_9 +++ /dev/null @@ -1 +0,0 @@ -urn:uuid:{6ba7b810-9dad-11d1-80b4-00c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_valid_BracedCanonical b/testdata/corpus/seed_valid_BracedCanonical deleted file mode 100755 index 23918e3..0000000 --- a/testdata/corpus/seed_valid_BracedCanonical +++ /dev/null @@ -1 +0,0 @@ -{6ba7b810-9dad-11d1-80b4-00c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_valid_BracedHashlike b/testdata/corpus/seed_valid_BracedHashlike deleted file mode 100755 index 726e1df..0000000 --- a/testdata/corpus/seed_valid_BracedHashlike +++ /dev/null @@ -1 +0,0 @@ -{6ba7b8109dad11d180b400c04fd430c8} \ No newline at end of file diff --git a/testdata/corpus/seed_valid_Canonical b/testdata/corpus/seed_valid_Canonical deleted file mode 100755 index 719471c..0000000 --- a/testdata/corpus/seed_valid_Canonical +++ /dev/null @@ -1 +0,0 @@ -6ba7b810-9dad-11d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_valid_Hashlike b/testdata/corpus/seed_valid_Hashlike deleted file mode 100755 index 327f806..0000000 --- a/testdata/corpus/seed_valid_Hashlike +++ /dev/null @@ -1 +0,0 @@ -6ba7b8109dad11d180b400c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_valid_URNCanonical b/testdata/corpus/seed_valid_URNCanonical deleted file mode 100755 index 78981af..0000000 --- a/testdata/corpus/seed_valid_URNCanonical +++ /dev/null @@ -1 +0,0 @@ -urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8 \ No newline at end of file diff --git a/testdata/corpus/seed_valid_URNHashlike b/testdata/corpus/seed_valid_URNHashlike deleted file mode 100755 index 089ec0c..0000000 --- a/testdata/corpus/seed_valid_URNHashlike +++ /dev/null @@ -1 +0,0 @@ -urn:uuid:6ba7b8109dad11d180b400c04fd430c8 \ No newline at end of file