# 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"
