-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Embed testdata as physical Go code to try to get example_test working
Since using go:embed didn't work on pkg.go.dev, this is another attempt to get the examples to run on the docs website...
- Loading branch information
Showing
10 changed files
with
1,322 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package testdata | ||
|
||
//go:generate ../../../script/testdata_embed.sh empty.fgb | ||
// DO NOT EDIT. Code generated by testdata_embed.sh version $Id$. | ||
// | ||
// This string contains the base64-encoded, bzip2-compressed, contents of the | ||
// file `empty.fgb`. For license information, please see | ||
// https://github.com/gogama/flatgeobuf/flatgeobuf/testdata/flatgeobuf/LICENSE. | ||
// | ||
// Last generated by schapper on Mon 18 Dec 2023 09:45:06 AM PST. The raw source | ||
// SHA-256 is bdc45e249e4418ef95a69b55a6db523f035231fef2c61dded2bb26fc9e64070d. | ||
// | ||
// This silly byte-embedding trick is needed to access the example test code | ||
// when running example code within the docs website, | ||
// https://pkg.go.dev/github.com/gogama/flatgeobuf. | ||
var EmptyFGB = ` | ||
QlpoOTFBWSZTWa7whNgAAeD/+//9RFBUZ3/gPufe6r/v/7AQAEABBABAAUABAQAEAMACNwknYDjQ0DRpkaaNMgMTBAADQGgNMgMCZAyiTwKY0SeTSAAAAABkAA0AAAImiagBoBoAANAAGQAAAAAAJJCaGiNU2NUeQgPU0NDRoHqaaDTBHqZD1B6TaI9SftznzKfZSRJL/ERDO36FU3zSIixKrxKKBJSYMemE9Y047gE9ntIc4nZzJDM0GZoPRhYFWw5owcBC5B4Vtcda+DCX6YKmQbzYOZ3f0dOneoiZOnG9AYUY3JGN7sbC0sk/XFlGzAcm+uQDkAzRcc2L7yDaiO2zlEvSOScLqHmQfmr37u5VuzPPWDN7r7h+RmAc1DApsMiEQ3YXtTjHczI5hE4CkpRUlluJxRbZZAFcyxXErpfIZJQGsQtqLLygulUiNxgSGujKTaY4vLUqrtXWVCm7XEJqnFNbwGIzWVVKKahI38vZiJ7caDg4Jq5uGGAuyOM2nT1JSGg8lRr1pd0isrRpOEWWmzKuVNhAk7EQbPJshoFedkCldmAQQFE0JmKLoCDYqWHQSoNZWDaGrIEZXiwCzO8NoADYgIPN1ctigkIgJlVWnJoRIQy1IiACkfaKw6cCCiJiiIgIEEIsIDygLwT7lwT6hkDH/k2xtmsqDPt5zOC2J0H7fdLVQIlnsLqskY3BBeG8gv2ZKdkDAVblEhFrW6ma8c69paWQsVdaRPolxQsvu1LdUvYR3Vggp1SVkzCL09xmWKEme3WYRPZe1uevo8uRBiqvFt/F4sMF2L6Rdhfk9zVDYOVBC2aFy1z3ILuKcRhi6ach0XCKjS2yBRRJcTC0COnuaf9p/4u5IpwoSFd4QmwA | ||
` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package testdata | ||
|
||
//go:generate ../../../script/testdata_embed.sh poly00.fgb | ||
// DO NOT EDIT. Code generated by testdata_embed.sh version $Id$. | ||
// | ||
// This string contains the base64-encoded, bzip2-compressed, contents of the | ||
// file `poly00.fgb`. For license information, please see | ||
// https://github.com/gogama/flatgeobuf/flatgeobuf/testdata/flatgeobuf/LICENSE. | ||
// | ||
// Last generated by schapper on Mon 18 Dec 2023 09:45:06 AM PST. The raw source | ||
// SHA-256 is 548a9ba3e51c089cb5c2501ccabd6de01884a57145f94a2b1be7f399fbf0c048. | ||
// | ||
// This silly byte-embedding trick is needed to access the example test code | ||
// when running example code within the docs website, | ||
// https://pkg.go.dev/github.com/gogama/flatgeobuf. | ||
var Poly00FGB = ` | ||
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 | ||
` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package testdata | ||
|
||
//go:generate ../../../script/testdata_embed.sh unknown_feature_count.fgb | ||
// DO NOT EDIT. Code generated by testdata_embed.sh version $Id$. | ||
// | ||
// This string contains the base64-encoded, bzip2-compressed, contents of the | ||
// file `unknown_feature_count.fgb`. For license information, please see | ||
// https://github.com/gogama/flatgeobuf/flatgeobuf/testdata/flatgeobuf/LICENSE. | ||
// | ||
// Last generated by schapper on Mon 18 Dec 2023 09:45:06 AM PST. The raw source | ||
// SHA-256 is c104be29220ce555dc23339ab26ac1ca016172000aab1db225a5a23becb81fa0. | ||
// | ||
// This silly byte-embedding trick is needed to access the example test code | ||
// when running example code within the docs website, | ||
// https://pkg.go.dev/github.com/gogama/flatgeobuf. | ||
var UnknownFeatureCountFGB = ` | ||
QlpoOTFBWSZTWT5whKcAAip////9RFBUb3/hfuf/6r/v/7AQEEABBABEAUyASIEBIgQEwAKWcYi26oNKaaQNT0anmiTamTQAYENDBGQNBkBhBkaAwjAaQT1TxNSeTUM0QAAAAAANAAAAGgAANNCVPU0G1GgD1AaABkAAAAAAAAAABJJGg0pmhAaaRoaA9TQBkekGRoBhH6kbU0NHqaGQ9Tyk7juhgIENrJMjmyqIhHgoUiTV/iBjC1JTo2NwtxCiZVHLgYYYmSAMyYlS8S1FY4E4i2KWNaqIiQLGlCqBKKkIhJckuwRJdmoRIyHVmWJXBRAwg7ASzGtgzmUxXZJTsihlwNostFldY0GLnC7TwceLzvJmDW4rsSSLSLrgCx+lHErLIZsLJRcsXtGvgVelVAVAX5HHDn78A1JB3fN4S8I5JwrCvIOCjZ0tejYfFyNrgzbOU4Kz0IACUNQCTVsUFDUjpStKbTvXzgpoEE8oNCea0tOigzSlSyRrNlADyiVTSxrWzZ6lxFFAA7wFQoVTGvQ+GlVEgjWaInlJIRB0MZJJcxpOJiYIWGuBbZzzAghSGvUAMSPtUUKRNMkYnI2t7SlFE26g29t9Z+5HllMDdO26WhKA0cRCbRyEumSKppJzaFVPTUr6a2BWf8HUzWa2sThNZlpTpMykZA9LKd3lZTt8GWTnSkLDnk+x+GYnkIZrmEBER3MgMqx4ZQADFASOLmOOt10CUiCIxOOur3JoRojRSI4MkOk0EJ821jLKSQQhFzNEL0L2T5y6+Hks7Q8n9TVLgTGDVwGAF0ZUH2irmWphEMFJXVMDnuCNdW0gGYHE9jABAVpvHwINJNZuz7s8JcgbC51yWWIg7+1ap10GYzLhk2x2bGgnuEKXsItS1mZZ8cGibOYRLTa0OLI1OzeQISrAaZ/g5JhKFooIhAOhVMyWYEmpxAHbUO/bMmYgH7jsItyOfKfke1Y/qlUsGxnWAhxqithGNxlyIxp15NiIhxIsI4P4Iw6ePFj/4u5IpwoSB84QlOA= | ||
` |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
testdata_embed.sh ident |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Copyright 2023 The flatgeobuf (Go) Authors. All rights reserved. | ||
# Use of this source code is governed by an MIT-style | ||
# license that can be found in the LICENSE file. | ||
|
||
set -eo pipefail | ||
|
||
|
||
if ! command -v bzip2 >/dev/null; then | ||
>&2 << EOF cat | ||
error: bzip2 not found | ||
| This script uses bzip2 to compress test data files from | ||
| https://github.com/flatgeobuf/flatgeobuf prior to embedding | ||
| them in the Go code. | ||
| | ||
| Install bzip2 if you want to proceed. | ||
EOF | ||
exit 2 | ||
fi | ||
|
||
|
||
function version() { | ||
local version='$Id$' | ||
version="${version##\$Id: }" | ||
version="${version%% \$}" | ||
echo $version | ||
} | ||
|
||
|
||
testdata_file="$1" | ||
if ! [ -f "$testdata_file" ]; then | ||
>&2 printf "unable to import %s: not found or not a file\n" "$testdata_file" | ||
fi | ||
|
||
|
||
# Derive the name of the string variable to contain the contents of the | ||
# testdata file. | ||
testdata_filename_root="$(basename "$testdata_file")" | ||
declare -a testdata_varname_parts | ||
testdata_filename_root="${testdata_filename_root%%.fgb}" | ||
readarray -td $'\n' testdata_varname_parts <<<"${testdata_filename_root//_/$'\n'}" | ||
testdata_varname= | ||
for (( i=0; i<"${#testdata_varname_parts}"; i++ )); do | ||
part="${testdata_varname_parts[$i]}" | ||
testdata_varname+="${part^}" | ||
done | ||
testdata_varname+=FGB | ||
|
||
|
||
# Create a temporary file to contain the input $GOFILE with generated | ||
# code inserted. Set a trap to make sure the file gets deleted if we | ||
# error out unexpectedly. | ||
tmp_file="" | ||
function cleanup() { | ||
rm -f "$tmp_file" | ||
} | ||
trap cleanup EXIT | ||
tmp_file=$(mktemp "$GOFILE.XXXXXXXX") | ||
|
||
|
||
# Print status. | ||
>&2 printf 'embedding %s into %s (%s) at line %d using %s\n' "$testdata_file" "$GOFILE" "var $testdata_varname" "$GOLINE" "$tmp_file" | ||
|
||
# PREFIX: Echo every line of the Go file prior to the go:generate | ||
# directive to the temporary file. | ||
>"$tmp_file" head -n "$GOLINE" "$GOFILE" | ||
|
||
|
||
# INFIX: Insert the generated code. | ||
>>"$tmp_file" <<EOF cat | ||
// DO NOT EDIT. Code generated by testdata_embed.sh version $(version). | ||
// | ||
// This string contains the base64-encoded, bzip2-compressed, contents of the | ||
// file \`$testdata_file\`. For license information, please see | ||
// https://github.com/gogama/flatgeobuf/flatgeobuf/testdata/flatgeobuf/LICENSE. | ||
// | ||
// Last generated by $USER on $(date). The raw source | ||
// SHA-256 is $(sha256sum "$testdata_file" | cut -d' ' -f1). | ||
// | ||
// This silly byte-embedding trick is needed to access the example test code | ||
// when running example code within the docs website, | ||
// https://pkg.go.dev/github.com/gogama/flatgeobuf. | ||
var $testdata_varname = \` | ||
EOF | ||
<"$testdata_file" bzip2 | base64 -w 8192 >>"$tmp_file" | ||
>>"$tmp_file" echo '`' | ||
|
||
|
||
# Find the end of the string literal within the input file so we can | ||
# skip past it. | ||
offset="$(tail -n +"$GOLINE" "$GOFILE" | grep -n -m1 '\(^\|`\)`$' | cut -d: -f 1)" | ||
|
||
|
||
# SUFFIX: Echo every line of the Go file after the go:generate directive | ||
# to the temporary file. | ||
>>"$tmp_file" tail -n +$((GOLINE + offset)) "$GOFILE" | ||
|
||
|
||
# Swap the temporary file in for the original target Go file. | ||
mv "$tmp_file" "$GOFILE" |
File renamed without changes.