Skip to content

Commit 78dca22

Browse files
committed
fix(provider): coalesce arch to armv7 if on 32-bit arm
1 parent f3a205c commit 78dca22

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

provider/provisioner.go

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ func provisionerDataSource() *schema.Resource {
1616
rd.SetId(uuid.NewString())
1717
rd.Set("os", runtime.GOOS)
1818
rd.Set("arch", runtime.GOARCH)
19+
// Fix for #11782: if we're on 32-bit ARM, set arch to armv7.
20+
if runtime.GOARCH == "arm" {
21+
rd.Set("arch", "armv7")
22+
}
1923

2024
return nil
2125
},

provider/provisioner_test.go

+31
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,34 @@ func TestProvisioner(t *testing.T) {
3737
}},
3838
})
3939
}
40+
41+
func TestProvisioner_ARMv7(t *testing.T) {
42+
if runtime.GOARCH != "arm" {
43+
t.Skip("This test can only run on 32-bit ARM architecture")
44+
}
45+
resource.Test(t, resource.TestCase{
46+
Providers: map[string]*schema.Provider{
47+
"coder": provider.New(),
48+
},
49+
IsUnitTest: true,
50+
Steps: []resource.TestStep{{
51+
Config: `
52+
provider "coder" {
53+
}
54+
data "coder_provisioner" "me" {
55+
}`,
56+
Check: func(state *terraform.State) error {
57+
require.Len(t, state.Modules, 1)
58+
require.Len(t, state.Modules[0].Resources, 1)
59+
resource := state.Modules[0].Resources["data.coder_provisioner.me"]
60+
require.NotNil(t, resource)
61+
62+
attribs := resource.Primary.Attributes
63+
require.Equal(t, runtime.GOOS, attribs["os"])
64+
require.Equal(t, "armv7", attribs["arch"])
65+
return nil
66+
},
67+
}},
68+
})
69+
70+
}

0 commit comments

Comments
 (0)