ROOTPLOIT
Server: LiteSpeed
System: Linux in-mum-web1878.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User: u435929562 (435929562)
PHP: 7.4.33
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //proc/self/root/opt/go/pkg/mod/github.com/aws/[email protected]/internal/ini/value_util_test.go
//go:build go1.7
// +build go1.7

package ini

import (
	"testing"
)

func TestStringValue(t *testing.T) {
	cases := []struct {
		b             []rune
		expectedRead  int
		expectedError bool
		expectedValue string
	}{
		{
			b:             []rune(`"foo"`),
			expectedRead:  5,
			expectedValue: `"foo"`,
		},
		{
			b:             []rune(`"123 !$_ 456 abc"`),
			expectedRead:  17,
			expectedValue: `"123 !$_ 456 abc"`,
		},
		{
			b:             []rune("foo"),
			expectedError: true,
		},
		{
			b:             []rune(` "foo"`),
			expectedError: true,
		},
	}

	for i, c := range cases {
		n, err := getStringValue(c.b)

		if e, a := c.expectedValue, string(c.b[:n]); e != a {
			t.Errorf("%d: expected %v, but received %v", i, e, a)
		}

		if e, a := c.expectedRead, n; e != a {
			t.Errorf("%d: expected %v, but received %v", i, e, a)
		}

		if e, a := c.expectedError, err != nil; e != a {
			t.Errorf("%d: expected %v, but received %v", i, e, a)
		}
	}
}

func TestBoolValue(t *testing.T) {
	cases := []struct {
		b             []rune
		expectedRead  int
		expectedError bool
		expectedValue string
	}{
		{
			b:             []rune("true"),
			expectedRead:  4,
			expectedValue: "true",
		},
		{
			b:             []rune("false"),
			expectedRead:  5,
			expectedValue: "false",
		},
		{
			b:             []rune(`"false"`),
			expectedError: true,
		},
		{
			b:             []rune(`True`),
			expectedRead:  4,
			expectedValue: "True",
		},
		{
			b:             []rune(`False`),
			expectedRead:  5,
			expectedValue: "False",
		},
	}

	for _, c := range cases {
		n, err := getBoolValue(c.b)

		if e, a := c.expectedValue, string(c.b[:n]); e != a {
			t.Errorf("expected %v, but received %v", e, a)
		}

		if e, a := c.expectedRead, n; e != a {
			t.Errorf("expected %v, but received %v", e, a)
		}

		if e, a := c.expectedError, err != nil; e != a {
			t.Errorf("expected %v, but received %v", e, a)
		}
	}
}

func TestNumericalValue(t *testing.T) {
	cases := []struct {
		b             []rune
		expectedRead  int
		expectedError bool
		expectedValue string
		expectedBase  int
	}{
		{
			b:             []rune("1.2"),
			expectedRead:  3,
			expectedValue: "1.2",
			expectedBase:  10,
		},
		{
			b:             []rune("123"),
			expectedRead:  3,
			expectedValue: "123",
			expectedBase:  10,
		},
		{
			b:             []rune("0x123A"),
			expectedRead:  6,
			expectedValue: "0x123A",
			expectedBase:  16,
		},
		{
			b:             []rune("0b101"),
			expectedRead:  5,
			expectedValue: "0b101",
			expectedBase:  2,
		},
		{
			b:             []rune("0o7"),
			expectedRead:  3,
			expectedValue: "0o7",
			expectedBase:  8,
		},
		{
			b:             []rune(`"123"`),
			expectedError: true,
		},
		{
			b:             []rune("0xo123"),
			expectedError: true,
		},
		{
			b:             []rune("123A"),
			expectedError: true,
		},
	}

	for i, c := range cases {
		base, n, err := getNumericalValue(c.b)

		if e, a := c.expectedValue, string(c.b[:n]); e != a {
			t.Errorf("%d: expected %v, but received %v", i+1, e, a)
		}

		if e, a := c.expectedRead, n; e != a {
			t.Errorf("%d: expected %v, but received %v", i+1, e, a)
		}

		if e, a := c.expectedError, err != nil; e != a {
			t.Errorf("%d: expected %v, but received %v", i+1, e, a)
		}

		if e, a := c.expectedBase, base; e != a {
			t.Errorf("%d: expected %d, but received %d", i+1, e, a)
		}
	}
}