<commit_before>package libct

import "testing"
import "syscall"
import "os"

func init() {
	LogInit(os.Stderr, LOG_MSG)
}

func TestSpawnExecv(t *testing.T) {
	s := &Session{}

	err := s.OpenLocal()
	if err != nil {
		t.Fatal(err)
	}

	p, err := s.ProcessCreateDesc()
	if err != nil {
		t.Fatal(err)
	}

	ct, err := s.ContainerCreate("test")
	if err != nil {
		t.Fatal(err)
	}

	ct.SetNsMask(syscall.CLONE_NEWNS | syscall.CLONE_NEWPID)

	err = ct.SpawnExecve(p, "true",
		[]string{"true"},
		[]string{"PATH=/bin:/usr/bin"})
	if err != nil {
		t.Fatal(err)
	}
	ct.Wait()
}

func TestSpawnExecvStdout(t *testing.T) {
	s := &Session{}

	err := s.OpenLocal()
	if err != nil {
		t.Fatal(err)
	}<commit_msg>go/test: test that environment variables can be set<commit_after>package libct

import "testing"
import "syscall"
import "os"

func init() {
	LogInit(os.Stderr, LOG_MSG)
}

func TestSpawnExecv(t *testing.T) {
	s := &Session{}

	err := s.OpenLocal()
	if err != nil {
		t.Fatal(err)
	}

	p, err := s.ProcessCreateDesc()
	if err != nil {
		t.Fatal(err)
	}

	ct, err := s.ContainerCreate("test")
	if err != nil {
		t.Fatal(err)
	}

	ct.SetNsMask(syscall.CLONE_NEWNS | syscall.CLONE_NEWPID)
	if err = p.SetEnv([]string{"PATH=/bin:/usr/bin"}); err != nil {
		t.Fatal(err)
	}

	err = ct.SpawnExecve(p, "sh",
		[]string{"sh", "-c", "env | grep -q TEST_LIBCT=test_libct"},
		[]string{"TEST_LIBCT=test_libct"})
	if err != nil {
		t.Fatal(err)
	}
	status, err := p.Wait()
	ct.Wait()
	if err != nil {
		t.Fatal(err)
	}
	if !status.Success() {
		t.Fatal(status.String())
	}
}

func TestSpawnExecvStdout(t *testing.T) {
	s := &Session{}

	err := s.OpenLocal()
	if err != nil {
		t.Fatal(err)
	}
{'fraction_non_alphanumeric': 0.19036287923854847, 'fraction_numerical': 0.0, 'mean_word_length': 3.6082191780821917, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5169010', 'n_tokens_mistral': 779, 'n_tokens_neox': 717, 'n_words': 148}