| package integration |
| |
| import ( |
| "os" |
| "runtime" |
| "testing" |
| |
| "github.com/Sirupsen/logrus" |
| "github.com/opencontainers/runc/libcontainer" |
| "github.com/opencontainers/runc/libcontainer/cgroups/systemd" |
| _ "github.com/opencontainers/runc/libcontainer/nsenter" |
| ) |
| |
| // init runs the libcontainer initialization code because of the busybox style needs |
| // to work around the go runtime and the issues with forking |
| func init() { |
| if len(os.Args) < 2 || os.Args[1] != "init" { |
| return |
| } |
| runtime.GOMAXPROCS(1) |
| runtime.LockOSThread() |
| factory, err := libcontainer.New("") |
| if err != nil { |
| logrus.Fatalf("unable to initialize for container: %s", err) |
| } |
| if err := factory.StartInitialization(); err != nil { |
| logrus.Fatal(err) |
| } |
| } |
| |
| var ( |
| factory libcontainer.Factory |
| systemdFactory libcontainer.Factory |
| ) |
| |
| func TestMain(m *testing.M) { |
| var ( |
| err error |
| ret int = 0 |
| ) |
| |
| logrus.SetOutput(os.Stderr) |
| logrus.SetLevel(logrus.InfoLevel) |
| |
| factory, err = libcontainer.New(".", libcontainer.Cgroupfs) |
| if err != nil { |
| logrus.Error(err) |
| os.Exit(1) |
| } |
| if systemd.UseSystemd() { |
| systemdFactory, err = libcontainer.New(".", libcontainer.SystemdCgroups) |
| if err != nil { |
| logrus.Error(err) |
| os.Exit(1) |
| } |
| } |
| |
| ret = m.Run() |
| os.Exit(ret) |
| } |