mirror of
https://github.com/burrowers/garble.git
synced 2025-12-24 12:58:05 +08:00
When creating a new debugdir directory, add a sentinel .garble-debugdir file at its root so that we can later know that we created it and the user is very unlikely to have left important data there. When emptying an existing debugdir directory, only do so if it has that sentinel file, for added safety. Fixes #932.
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
exec garble -debugdir=debug1 build
|
|
exists 'debug1/test/main/imported/imported.go' 'debug1/test/main/main.go' 'debug1/reflect/type.go'
|
|
exists 'debug1/runtime/error.go' 'debug1/runtime/funcdata.h' 'debug1/runtime/asm.s'
|
|
[amd64] exists 'debug1/runtime/cpuflags_amd64.go' 'debug1/runtime/asm_amd64.s'
|
|
[!amd64] ! exists 'debug1/runtime/cpuflags_amd64.go' 'debug1/runtime/asm_amd64.s'
|
|
! grep ImportedFunc $WORK/debug1/test/main/imported/imported.go
|
|
! grep ImportedFunc $WORK/debug1/test/main/main.go
|
|
! grep 'some comment' $WORK/debug1/test/main/main.go
|
|
|
|
# We should refuse to delete non-empty directories which weren't created
|
|
# by an earlier invocation of garble -debugdir, as that could lead to data loss.
|
|
! exec garble -debugdir=notdebug build
|
|
stderr 'debugdir "notdebug" has unknown contents; empty it first'
|
|
exists notdebug/important_data.txt
|
|
exists notdebug/subdir/important_data.txt
|
|
|
|
[short] stop
|
|
|
|
# Sources from previous builds should be deleted
|
|
cp $WORK/debug1/test/main/main.go $WORK/debug1/some_file_from_prev_build.go
|
|
|
|
exec garble -debugdir=debug1 build -v
|
|
stderr 'test/main' # we force rebuilds with -debugdir
|
|
! exists $WORK/debug1/some_file_from_prev_build.go
|
|
|
|
-- notdebug/important_data.txt --
|
|
This file should not be deleted by -debugdir.
|
|
-- notdebug/subdir/important_data.txt --
|
|
This file should not be deleted by -debugdir.
|
|
-- go.mod --
|
|
module test/main
|
|
|
|
go 1.23
|
|
-- main.go --
|
|
package main
|
|
|
|
import (
|
|
"reflect"
|
|
|
|
"test/main/imported" // some comment
|
|
)
|
|
|
|
type someType int // some comment
|
|
var someVar = 0
|
|
|
|
type someStruct struct {
|
|
someField int // some comment
|
|
}
|
|
|
|
func main() {
|
|
imported.ImportedFunc()
|
|
reflect.TypeOf(123)
|
|
}
|
|
|
|
-- imported/imported.go --
|
|
package imported
|
|
|
|
func ImportedFunc() {}
|