github.com/bananabytelabs/wazero@v0.0.0-20240105073314-54b22a776da8/internal/integration_test/stdlibs/Makefile (about) 1 # Note: Some tests might fail if Go has been installed with homebrew because 2 # the file system layout is different than what the tests expect. 3 # Easiest fix is to install without using brew. 4 goroot?=$(shell go env GOROOT) 5 # Note: The standard binary zig distribution does not ship some testdata. 6 # You should override with the zig source code path, otherwise some tests will fail. 7 zigroot?=$(shell dirname $(shell which zig)) 8 9 zig_bin=$(shell pwd)/testdata/zig 10 tinygo_bin=$(shell pwd)/testdata/tinygo 11 gowasip1_bin=$(shell pwd)/testdata/go 12 13 14 # embed/internal/embedtest deals with some paths that are not available here, ignore. 15 tinygo_tests=container/heap \ 16 container/list \ 17 container/ring \ 18 crypto/des \ 19 crypto/md5 \ 20 crypto/rc4 \ 21 crypto/sha1 \ 22 crypto/sha256 \ 23 crypto/sha512 \ 24 encoding \ 25 encoding/ascii85 \ 26 encoding/base32 \ 27 encoding/csv \ 28 encoding/hex \ 29 go/scanner \ 30 hash \ 31 hash/adler32 \ 32 hash/crc64 \ 33 hash/fnv \ 34 html \ 35 internal/itoa \ 36 internal/profile \ 37 math \ 38 math/cmplx \ 39 net \ 40 net/http/internal/ascii \ 41 net/mail \ 42 os \ 43 path \ 44 reflect \ 45 sync \ 46 testing \ 47 testing/iotest \ 48 text/scanner \ 49 unicode \ 50 unicode/utf16 \ 51 unicode/utf8 52 53 gowasip1_tests=src/archive/tar \ 54 src/bufio \ 55 src/bytes \ 56 src/context \ 57 src/encoding/ascii85 \ 58 src/encoding/asn1 \ 59 src/encoding/base32 \ 60 src/encoding/base64 \ 61 src/encoding/binary \ 62 src/encoding/csv \ 63 src/encoding/gob \ 64 src/encoding/hex \ 65 src/encoding/json \ 66 src/encoding/pem \ 67 src/encoding/xml \ 68 src/errors \ 69 src/expvar \ 70 src/flag \ 71 src/fmt \ 72 src/hash \ 73 src/hash/adler32 \ 74 src/hash/crc32 \ 75 src/hash/crc64 \ 76 src/hash/fnv \ 77 src/hash/maphash \ 78 src/io \ 79 src/io/fs \ 80 src/io/ioutil \ 81 src/log \ 82 src/log/syslog \ 83 src/maps \ 84 src/math \ 85 src/math/big \ 86 src/math/bits \ 87 src/math/cmplx \ 88 src/math/rand \ 89 src/mime \ 90 src/mime/multipart \ 91 src/mime/quotedprintable \ 92 src/os \ 93 src/os/exec \ 94 src/os/signal \ 95 src/os/user \ 96 src/path \ 97 src/reflect \ 98 src/regexp \ 99 src/regexp/syntax \ 100 src/runtime \ 101 src/runtime/internal/atomic \ 102 src/runtime/internal/math \ 103 src/runtime/internal/sys \ 104 src/slices \ 105 src/sort \ 106 src/strconv \ 107 src/strings \ 108 src/sync \ 109 src/sync/atomic \ 110 src/syscall \ 111 src/testing \ 112 src/testing/fstest \ 113 src/testing/iotest \ 114 src/testing/quick \ 115 src/time 116 117 all: build.zig build.tinygo build.gowasip1 118 119 run: 120 go test -bench=. -benchtime=1x 121 122 123 .PHONY: build.zig 124 build.zig: 125 # --test-no-exec allows building of the test Wasm binary without executing command. 126 # We use find because the test.wasm will be something like ./zig-cache/o/dd6df1361b2134adc5eee9d027495436/test.wasm 127 @mkdir -p $(zig_bin) 128 @cd $(zigroot) && zig test --test-no-exec -target wasm32-wasi --zig-lib-dir $(zigroot)/lib $(zigroot)/lib/std/std.zig 129 @cp $$(find $(zigroot) -name test.wasm) $(zig_bin)/test.wasm 130 # The generated test binary is large and produces skewed results in favor of the optimized compiler. 131 # We also generate a stripped, optimized binary with wasm-opt. 132 @wasm-opt $(zig_bin)/test.wasm -O --strip-dwarf -o $(zig_bin)/test-opt.wasm 133 134 .PHONY: build.tinygo 135 build.tinygo: 136 @mkdir -p $(tinygo_bin) 137 for value in $(tinygo_tests); do\ 138 echo Building $${value}... ;\ 139 tinygo test -target wasi -c -o $(tinygo_bin)/$$(echo $$value | sed -e 's/\//_/g').test $${value} 2>&1 >/dev/null ;\ 140 done 141 142 .PHONY: build.gowasip1 143 build.gowasip1: 144 @mkdir -p $(gowasip1_bin) 145 @cd '$(goroot)'; \ 146 for value in $(gowasip1_tests); do\ 147 GOOS=wasip1 GOARCH=wasm go test -v -c -o $(gowasip1_bin)/$$(echo $$value | sed -e 's/\//_/g').test ./$${value}; \ 148 done