| # Test internal package errors are handled |
| go list ./testinternal3 |
| stdout 'testinternal3' |
| |
| # Test internal cache |
| env GOPATH=$WORK/gopath/src/testinternal4 |
| ! go build p |
| stderr 'internal' |
| |
| # Test internal packages outside GOROOT are respected |
| ! go build -v ./testinternal2 |
| stderr 'testinternal2(\/|\\)p\.go\:3\:8\: use of internal package .*internal/w not allowed' |
| |
| [gccgo] skip # gccgo does not have GOROOT |
| ! go build -v ./testinternal |
| stderr 'testinternal(\/|\\)p\.go\:3\:8\: use of internal package net/http/internal not allowed' |
| |
| -- testinternal/p.go -- |
| package p |
| |
| import _ "net/http/internal" |
| -- testinternal2/p.go -- |
| package p |
| |
| import _ "./x/y/z/internal/w" |
| -- testinternal2/x/y/z/internal/w/w.go -- |
| package w |
| -- testinternal3/t.go -- |
| package t |
| |
| import _ "internal/does-not-exist" |
| -- testinternal4/src/p/p.go -- |
| package p |
| |
| import ( |
| _ "q/internal/x" |
| _ "q/j" |
| ) |
| -- testinternal4/src/q/internal/x/x.go -- |
| package x |
| -- testinternal4/src/q/j/j.go -- |
| package j |
| |
| import _ "q/internal/x" |