You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
garble/testdata/script/cache.txtar

101 lines
1.9 KiB
Plaintext

# Ensure that garble knows how to handle all kinds of initial state scenarios
# when it comes to caching. If any cache file is missing, garble should redo
# the work and write the cache file again. See the docs below.
[short] stop # This step is slow by design, since it starts with an empty cache.
env GOCACHE=${WORK}/go-cache
env GARBLE_CACHE=${WORK}/garble-cache
# level1a has the regular Go build cached.
exec go build ./level1a
# level1b has the garble build cached, but our own cache files are gone.
exec garble build ./level1b
rm garble-cache
# level1c has the garble build cached with all files available.
exec garble build ./level1c
exec garble build
exec ./main
cmp stderr main.stderr
# verify with regular Go.
go build
exec ./main
cmp stderr main.stderr
-- go.mod --
module test/main
go 1.21
-- main.go --
package main
import (
"test/main/level1a"
"test/main/level1b"
"test/main/level1c"
)
func main() {
level1a.Print()
level1b.Print()
level1c.Print()
}
-- level1a/pkg.go --
package level1a
import (
"test/main/level1a/level2x"
"test/main/level1a/level2y"
)
func Print() { println(level2x.Value, level2y.Value) }
-- level1a/level2x/pkg.go --
package level2x
var Value = "1a/2x"
-- level1a/level2y/pkg.go --
package level2y
var Value = "1a/2y"
-- level1b/pkg.go --
package level1b
import (
"test/main/level1b/level2x"
"test/main/level1b/level2y"
)
func Print() { println(level2x.Value, level2y.Value) }
-- level1b/level2x/pkg.go --
package level2x
var Value = "1b/2x"
-- level1b/level2y/pkg.go --
package level2y
var Value = "1b/2y"
-- level1c/pkg.go --
package level1c
import (
"test/main/level1c/level2x"
"test/main/level1c/level2y"
)
func Print() { println(level2x.Value, level2y.Value) }
-- level1c/level2x/pkg.go --
package level2x
var Value = "1c/2x"
-- level1c/level2y/pkg.go --
package level2y
var Value = "1c/2y"
-- main.stderr --
1a/2x 1a/2y
1b/2x 1b/2y
1c/2x 1c/2y