diff --git a/.gitignore b/.gitignore index c434d83aff..745ffc30fe 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ ignored-assets main.wasm .parcel-cache .vscode/*.log -go.sum tests/**/Cargo.lock crates/**/Cargo.lock examples/**/Cargo.lock diff --git a/examples/config-tinygo/go.sum b/examples/config-tinygo/go.sum new file mode 100644 index 0000000000..096c54e630 --- /dev/null +++ b/examples/config-tinygo/go.sum @@ -0,0 +1,2 @@ +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/examples/http-tinygo-outbound-http/go.sum b/examples/http-tinygo-outbound-http/go.sum new file mode 100644 index 0000000000..096c54e630 --- /dev/null +++ b/examples/http-tinygo-outbound-http/go.sum @@ -0,0 +1,2 @@ +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/examples/http-tinygo/go.sum b/examples/http-tinygo/go.sum new file mode 100644 index 0000000000..096c54e630 --- /dev/null +++ b/examples/http-tinygo/go.sum @@ -0,0 +1,2 @@ +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/examples/tinygo-key-value/go.sum b/examples/tinygo-key-value/go.sum new file mode 100644 index 0000000000..096c54e630 --- /dev/null +++ b/examples/tinygo-key-value/go.sum @@ -0,0 +1,2 @@ +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/examples/tinygo-redis/go.sum b/examples/tinygo-redis/go.sum new file mode 100644 index 0000000000..05ac2a3da6 --- /dev/null +++ b/examples/tinygo-redis/go.sum @@ -0,0 +1 @@ +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/sdk/go/http/testdata/http-tinygo/spin.toml b/sdk/go/http/testdata/http-tinygo/spin.toml index f8c8878806..635e39ac4d 100644 --- a/sdk/go/http/testdata/http-tinygo/spin.toml +++ b/sdk/go/http/testdata/http-tinygo/spin.toml @@ -10,3 +10,5 @@ id = "http-tinygo-test" source = "main.wasm" [component.trigger] route = "/hello/..." +[component.build] +command = "tinygo build -target=wasi -gc=leaking -no-debug -o main.wasm main.go" diff --git a/sdk/go/http/testdata/spin-roundtrip/spin.toml b/sdk/go/http/testdata/spin-roundtrip/spin.toml index b835d9208d..778f3043f8 100644 --- a/sdk/go/http/testdata/spin-roundtrip/spin.toml +++ b/sdk/go/http/testdata/spin-roundtrip/spin.toml @@ -11,3 +11,5 @@ source = "main.wasm" allowed_http_hosts = ["example.com"] [component.trigger] route = "/hello/..." +[component.build] +command = "tinygo build -target=wasi -gc=leaking -no-debug -o main.wasm main.go" diff --git a/sdk/go/integration_test.go b/sdk/go/integration_test.go index a45bdc8531..7d4e591cd8 100644 --- a/sdk/go/integration_test.go +++ b/sdk/go/integration_test.go @@ -12,19 +12,19 @@ import ( "time" ) -const spin_binary = "../../target/debug/spin" +const spinBinary = "../../target/debug/spin" func retryGet(t *testing.T, url string) *http.Response { t.Helper() - const tries = 10 - for i := 1; i < tries; i++ { + const maxTries = 24 + for i := 1; i < maxTries; i++ { if res, err := http.Get(url); err != nil { t.Log(err) } else { return res } - time.Sleep(3 * time.Second) + time.Sleep(4 * time.Second) } t.Fatal("Get request timeout: ", url) return nil @@ -37,11 +37,11 @@ type testSpin struct { } func startSpin(t *testing.T, spinfile string) *testSpin { - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 4*time.Minute) url := getFreePort(t) - cmd := exec.CommandContext(ctx, spin_binary, "up", "--file", spinfile, "--listen", url) + cmd := exec.CommandContext(ctx, spinBinary, "build", "--up", "--file", spinfile, "--listen", url) stderr := new(bytes.Buffer) cmd.Stderr = stderr if err := cmd.Start(); err != nil { @@ -56,18 +56,12 @@ func startSpin(t *testing.T, spinfile string) *testSpin { } } -func buildTinyGo(t *testing.T, dir string) { +func build(t *testing.T, dir string) { t.Helper() t.Log("building example: ", dir) - getCmd := exec.Command("go", "mod", "tidy") - getCmd.Dir = dir - if err := getCmd.Run(); err != nil { - t.Errorf("Failed to go mod tidy %q, %v", dir, err) - } - - cmd := exec.Command("tinygo", "build", "-target=wasi", "-gc=leaking", "-o", "main.wasm", "main.go") + cmd := exec.Command(spinBinary, "build") cmd.Dir = dir stderr := new(bytes.Buffer) @@ -79,7 +73,6 @@ func buildTinyGo(t *testing.T, dir string) { } func TestSpinRoundTrip(t *testing.T) { - buildTinyGo(t, "http/testdata/spin-roundtrip") spin := startSpin(t, "http/testdata/spin-roundtrip/spin.toml") defer spin.cancel() @@ -104,7 +97,6 @@ func TestSpinRoundTrip(t *testing.T) { } func TestHTTPTriger(t *testing.T) { - buildTinyGo(t, "http/testdata/http-tinygo") spin := startSpin(t, "http/testdata/http-tinygo/spin.toml") defer spin.cancel() @@ -143,7 +135,7 @@ func TestBuildExamples(t *testing.T) { "../../examples/tinygo-redis", "../../examples/tinygo-key-value", } { - buildTinyGo(t, example) + build(t, example) } }