blob: b5cc1167cbe5ba1d76b262e09185d7ef10996eb0 [file] [log] [blame]
# This is a test that -trimpath trims the paths of every directory
# of Cgo dependencies in the module, and trims file paths included
# through the __FILE__ macro using --file-prefix-map.
[!cgo] skip
[short] skip 'links and runs binaries'
# Test in main module.
go run -trimpath -mod=vendor ./main
stdout '(\\_\\_|/_)[\\/]m[\\/]c[\\/]bar.h'
# Test in vendored module.
go run -trimpath -mod=vendor v.com/main
stdout '(\\_\\_|/_)[\\/]vendor[\\/]v.com[\\/]c[\\/]bar.h'
# Test in GOPATH mode.
env GO111MODULE=off
go run -trimpath ./main
stdout '(\\_\\_|/_)[\\/]GOPATH[\\/]src[\\/]c[\\/]bar.h'
-- go.mod --
module m
require v.com v1.0.0
-- go.sum --
v.com v1.0.0 h1:xxx
v.com v1.0.0/go.mod h1:xxx
-- vendor/modules.txt --
# v.com v1.0.0
## explicit; go 1.20
v.com/main
-- vendor/v.com/main/main.go --
package main
// #cgo CFLAGS: -I../c
// #include "stdio.h"
// void printfile();
import "C"
func main() {
C.printfile()
C.fflush(C.stdout)
}
-- vendor/v.com/main/foo.c --
#include "bar.h"
-- vendor/v.com/c/bar.h --
#include "stdio.h"
void printfile() {
printf("%s\n", __FILE__);
}
-- main/main.go --
package main
// #cgo CFLAGS: -I../c
// #include "stdio.h"
// void printfile();
import "C"
func main() {
C.printfile()
C.fflush(C.stdout)
}
-- main/foo.c --
#include "bar.h"
-- c/bar.h --
#include "stdio.h"
void printfile() {
printf("%s\n", __FILE__);
}