# Copyright 2022 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# Makefile for the sandbox package.
# `make` will build and install binaries needed for the test, run the test as root,
# then clean up.

default: test clean

test: /usr/local/bin/runsc testbundle
	sudo $(shell which go) test -v


# Release version must match the one in cmd/worker/Dockerfile.
RUNSC_URL := https://storage.googleapis.com/gvisor/releases/release/20221107.0/$(shell uname -m)

# This is an edited version of the commands at https://gvisor.dev/docs/user_guide/install.
/usr/local/bin/runsc:
	wget $(RUNSC_URL)/runsc $(RUNSC_URL)/runsc.sha512
	sha512sum -c runsc.sha512
	rm -f *.sha512
	chmod a+rx runsc
	sudo mv runsc /usr/local/bin

testbundle: testdata/bundle/rootfs/runner testdata/bundle/rootfs/printargs

testdata/bundle/rootfs/runner: runner.go
	go build -o $@ $<
	chmod o+rx $@

testdata/bundle/rootfs/printargs: testdata/printargs.go
	go build -o $@ $<
	chmod o+rx $@

clean:
	rm testdata/bundle/rootfs/runner
	rm testdata/bundle/rootfs/printargs

.PHONY: clean testbundle

