mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 03:20:11 +00:00
- isRecentlyAutoRegistered: expiry logic, cleanup behavior - clearAutoRegistered: key deletion, empty input handling - normalizeDockerAgentArch: all arch variants, case handling, trimming
70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
package api
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeDockerAgentArch(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
expected string
|
|
}{
|
|
// Empty string
|
|
{"empty string", "", ""},
|
|
|
|
// amd64 variants
|
|
{"linux-amd64", "linux-amd64", "linux-amd64"},
|
|
{"amd64", "amd64", "linux-amd64"},
|
|
{"x86_64", "x86_64", "linux-amd64"},
|
|
{"x86-64", "x86-64", "linux-amd64"},
|
|
|
|
// arm64 variants
|
|
{"linux-arm64", "linux-arm64", "linux-arm64"},
|
|
{"arm64", "arm64", "linux-arm64"},
|
|
{"aarch64", "aarch64", "linux-arm64"},
|
|
|
|
// armv7 variants
|
|
{"linux-armv7", "linux-armv7", "linux-armv7"},
|
|
{"armv7", "armv7", "linux-armv7"},
|
|
{"armv7l", "armv7l", "linux-armv7"},
|
|
{"armhf", "armhf", "linux-armv7"},
|
|
|
|
// armv6 variants
|
|
{"linux-armv6", "linux-armv6", "linux-armv6"},
|
|
{"armv6", "armv6", "linux-armv6"},
|
|
{"armv6l", "armv6l", "linux-armv6"},
|
|
|
|
// 386 variants
|
|
{"linux-386", "linux-386", "linux-386"},
|
|
{"386", "386", "linux-386"},
|
|
{"i386", "i386", "linux-386"},
|
|
{"i686", "i686", "linux-386"},
|
|
|
|
// Unknown architecture
|
|
{"unknown arch", "unknown", ""},
|
|
{"invalid arch", "powerpc", ""},
|
|
{"mips", "mips", ""},
|
|
|
|
// Case insensitivity
|
|
{"AMD64 uppercase", "AMD64", "linux-amd64"},
|
|
{"X86_64 uppercase", "X86_64", "linux-amd64"},
|
|
{"AARCH64 uppercase", "AARCH64", "linux-arm64"},
|
|
{"ARMV7 uppercase", "ARMV7", "linux-armv7"},
|
|
{"mixed case LinuX-AmD64", "LinuX-AmD64", "linux-amd64"},
|
|
|
|
// Whitespace trimming
|
|
{"leading space", " amd64", "linux-amd64"},
|
|
{"trailing space", "amd64 ", "linux-amd64"},
|
|
{"both spaces", " amd64 ", "linux-amd64"},
|
|
{"tabs", "\tamd64\t", "linux-amd64"},
|
|
{"mixed whitespace", " \t arm64 \t ", "linux-arm64"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := normalizeDockerAgentArch(tt.input)
|
|
if result != tt.expected {
|
|
t.Errorf("normalizeDockerAgentArch(%q) = %q, want %q", tt.input, result, tt.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|