aboutsummaryrefslogtreecommitdiffhomepage
path: root/helper/args_test.go
blob: 8547f4c1ecbdd56859b8da3f0db93a9d3c5105aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package helper_test

import (
	"errors"
	"fmt"
	"strings"
	"syscall"
	"testing"

	"git.gensokyo.uk/security/hakurei/helper"
)

func TestArgsString(t *testing.T) {
	wantString := strings.Join(wantArgs, " ")
	if got := argsWt.(fmt.Stringer).String(); got != wantString {
		t.Errorf("String: %q, want %q",
			got, wantString)
	}
}

func TestNewCheckedArgs(t *testing.T) {
	args := []string{"\x00"}
	if _, err := helper.NewCheckedArgs(args); !errors.Is(err, syscall.EINVAL) {
		t.Errorf("NewCheckedArgs: error = %v, wantErr %v",
			err, syscall.EINVAL)
	}

	t.Run("must panic", func(t *testing.T) {
		badPayload := []string{"\x00"}
		defer func() {
			wantPanic := "invalid argument"
			if r := recover(); r != wantPanic {
				t.Errorf("MustNewCheckedArgs: panic = %v, wantPanic %v",
					r, wantPanic)
			}
		}()
		helper.MustNewCheckedArgs(badPayload)
	})
}