| # Test that the -randlayout flag randomizes function order and | |
| # generates a working binary. | |
| [short] skip | |
| # Build with random layout using one seed, then run ... | |
| go build -o prog123.exe -ldflags=-randlayout=123 | |
| exec ./prog123.exe | |
| # ... now build with a different seed and run. | |
| go build -x -o prog456.exe -ldflags=-randlayout=456 | |
| exec ./prog456.exe | |
| # Capture symbols (sorted by address) | |
| go tool nm prog123.exe | |
| cp stdout syms123.txt | |
| # Capture symbols (sorted by address) | |
| go tool nm prog456.exe | |
| cp stdout syms456.txt | |
| # Output should be different. | |
| ! cmp syms123.txt syms456.txt | |
| -- go.mod -- | |
| module main | |
| go 1.20 | |
| -- mymain.go -- | |
| package main | |
| func main() { | |
| println("Hi mom!") | |
| } | |