aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/helper/args_test.go
blob: c83c6790ca6b70ae6445d84f9102bd97e2b81406 (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
40
41
package helper_test

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

	"hakurei.app/internal/helper"
)

func TestArgsString(t *testing.T) {
	t.Parallel()
	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) {
	t.Parallel()

	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) {
		t.Parallel()

		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...)
	})
}