github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/runtime/executors/execmeta/execmeta_test.go (about)

     1  package execmeta
     2  
     3  import (
     4  	"bytes"
     5  	"reflect"
     6  	"testing"
     7  )
     8  
     9  func TestExecMeta(t *testing.T) {
    10  	env := []string{
    11  		"EXAMPLE=value",
    12  		"SAMPLE=other",
    13  		"THIRD=whatever",
    14  	}
    15  	bins := map[string]string{ // map[alias]dest
    16  		"abc":         "/bin/abc",
    17  		"def":         "/tools/def",
    18  		"xyz.bat.exe": "/Scripts/xyz.bat",
    19  		"xyz.exe":     "/Scripts/xyz.bat",
    20  	}
    21  	tgt := Target{
    22  		CommitUUID: "1234abcd-1234-abcd-1234-abcd1234",
    23  		Namespace:  "owner/project",
    24  		Dir:        "/example/bin",
    25  		Headless:   true,
    26  	}
    27  	m := New("/sock-path", env, tgt, bins)
    28  	buf := &bytes.Buffer{}
    29  	if err := m.Encode(buf); err != nil {
    30  		t.Fatalf("unexpected error: %s", err)
    31  	}
    32  
    33  	t.Logf(buf.String())
    34  
    35  	mx, err := NewFromReader(buf)
    36  	if err != nil {
    37  		t.Fatalf("unexpected error: %s", err)
    38  	}
    39  	if !reflect.DeepEqual(mx, m) {
    40  		t.Fatalf("got %v, want %v", mx, m)
    41  	}
    42  }