# Test internal package errors are handled
cd testinternal3
go list .
stdout 'testinternal3'

# Test internal cache
cd ../testinternal4
! go build testinternal4/p
stderr 'internal'

# Test internal packages outside GOROOT are respected
cd ../testinternal2
! go build -v .
stderr 'p\.go:3:8: use of internal package .*internal/w not allowed'

[gccgo] skip # gccgo does not have GOROOT
cd ../testinternal
! go build -v .
stderr 'p\.go:3:8: use of internal package net/http/internal not allowed'

-- testinternal/go.mod --
module testinternal

go 1.16
-- testinternal/p.go --
package p

import _ "net/http/internal"
-- testinternal2/go.mod --
module testinternal2

go 1.16
-- testinternal2/p.go --
package p

import _ "./x/y/z/internal/w"
-- testinternal2/x/y/z/internal/w/w.go --
package w
-- testinternal3/go.mod --
module testinternal3

go 1.16
-- testinternal3/t.go --
package t

import _ "internal/does-not-exist"
-- testinternal4/go.mod --
module testinternal4

go 1.16
-- testinternal4/p/p.go --
package p

import (
	_ "testinternal4/q/internal/x"
	_ "testinternal4/q/j"
)
-- testinternal4/q/internal/x/x.go --
package x
-- testinternal4/q/j/j.go --
package j

import _ "testinternal4/q/internal/x"
