aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/internal/admin/jvm/memory_test.go
blob: 4a23ecedc18db296d639553df680c98c5e3a98b5 (plain) (blame)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

package jvm

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestConversion(t *testing.T) {
	v1 := GigaBytesOfMemory(17)
	v2 := MegaBytesOfMemory(17 * 1024)
	v3 := KiloBytesOfMemory(17 * 1024 * 1024)
	var numBytes int64 = 17 * 1024 * 1024 * 1024
	assert.Equal(t, v1, v2)
	assert.Equal(t, v1, v3)
	assert.Equal(t, v2, v1)
	assert.Equal(t, v2, v3)
	assert.Equal(t, v3, v1)
	assert.Equal(t, v3, v2)
	assert.Equal(t, numBytes, v1.ToBytes())
	assert.Equal(t, numBytes, v2.ToBytes())
	assert.Equal(t, numBytes, v3.ToBytes())
	assert.Equal(t, "17g", v1.AsJvmSpec())
	assert.Equal(t, "17g", v2.AsJvmSpec())
	assert.Equal(t, "17g", v3.AsJvmSpec())

	v1 = GigaBytesOfMemory(17)
	v2 = MegaBytesOfMemory(17 * 1000)
	v3 = KiloBytesOfMemory(17 * 1000 * 1000)
	assert.Equal(t, "17g", v1.AsJvmSpec())
	assert.Equal(t, "17000m", v2.AsJvmSpec())
	assert.Equal(t, "17000000k", v3.AsJvmSpec())
	assert.Equal(t, "{17 GiB}", v1.String())
	assert.Equal(t, "{17000 MiB}", v2.String())
	assert.Equal(t, "{17000000 KiB}", v3.String())

	var result AmountOfMemory
	var err error
	result, err = ParseJvmMemorySpec("17g")
	assert.Nil(t, err)
	assert.Equal(t, v1, result)
	result, err = ParseJvmMemorySpec("17G")
	assert.Nil(t, err)
	assert.Equal(t, v1, result)
	result, err = ParseJvmMemorySpec("17000m")
	assert.Nil(t, err)
	assert.Equal(t, v2, result)
	result, err = ParseJvmMemorySpec("17000M")
	assert.Nil(t, err)
	assert.Equal(t, v2, result)
	result, err = ParseJvmMemorySpec("17000000k")
	assert.Nil(t, err)
	assert.Equal(t, v3, result)
	result, err = ParseJvmMemorySpec("17000000K")
	assert.Nil(t, err)
	assert.Equal(t, v3, result)
}