github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/util/compiler/base/machine_test.go (about) 1 package base 2 3 import ( 4 "testing" 5 ) 6 7 var testdata = map[string]Machine{ 8 "x86_64-unknown-linux": Machine{ 9 Arch: "x86_64", 10 Kernel: "linux", 11 Vendor: "unknown", 12 }, 13 "x86_64-unknown-linux-gnu": Machine{ 14 Arch: "x86_64", 15 Kernel: "linux", 16 Vendor: "unknown", 17 System: "gnu", 18 }, 19 "x86_64-gdcproject-linux-gnu": Machine{ 20 Arch: "x86_64", 21 Kernel: "linux", 22 Vendor: "gdcproject", 23 System: "gnu", 24 }, 25 "arm-unknown-linux-gnueabi": Machine{ 26 Arch: "arm", 27 Kernel: "linux", 28 Vendor: "unknown", 29 System: "gnueabi", 30 }, 31 "arm-unknown-linux-androideabi": Machine{ 32 Arch: "arm", 33 Kernel: "linux", 34 Vendor: "unknown", 35 System: "androideabi", 36 }, 37 "x86_64-w64-mingw32": Machine{ 38 Arch: "x86_64", 39 Kernel: "mingw32", 40 Vendor: "w64", 41 }, 42 "x86_64-pc-mingw32": Machine{ 43 Arch: "x86_64", 44 Kernel: "mingw32", 45 Vendor: "pc", 46 }, 47 "i686-linux-gnu": Machine{ 48 Arch: "i686", 49 Kernel: "linux", 50 Vendor: "", 51 System: "gnu", 52 }, 53 } 54 55 func TestMachine(t *testing.T) { 56 for str, ent := range testdata { 57 ent.Valid = true 58 mach := ParseMachine(str) 59 if ent.Arch != mach.Arch { 60 t.Errorf("[%s] arch mismatch: have %s <-> want %s\n", str, ent.Arch, mach.Arch) 61 } 62 if ent.Kernel != mach.Kernel { 63 t.Errorf("[%s] kernel mismatch: have %s <-> want %s\n", str, ent.Kernel, mach.Kernel) 64 } 65 if ent.Vendor != mach.Vendor { 66 t.Errorf("[%s] vendor mismatch: have %s <-> want %s\n", str, ent.Vendor, mach.Vendor) 67 } 68 if ent.System != mach.System { 69 t.Errorf("[%s] system mismatch: have %s <-> want %s\n", str, ent.System, mach.System) 70 } 71 if str != ent.String() { 72 t.Errorf("[%s] serialize mismatch\n", ent.String()) 73 } 74 if str != mach.String() { 75 t.Errorf("[%s] serialize mismatch\n", mach.String()) 76 } 77 } 78 }