mirror of
https://github.com/hashicorp/packer.git
synced 2026-09-18 22:11:39 -04:00
* [COMPLIANCE] Add/Update Copyright Headers * make generate update * make generate --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com> Co-authored-by: sanya <[email protected]> Co-authored-by: Sanya <[email protected]>
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
// Copyright IBM Corp. 2024, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package packer
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFlattenConfigKeys_nil(t *testing.T) {
|
|
f := flattenConfigKeys(nil)
|
|
assert.Zero(t, f, "Expected empty list.")
|
|
}
|
|
|
|
func TestFlattenConfigKeys_nested(t *testing.T) {
|
|
inp := make(map[string]interface{})
|
|
inp["A"] = ""
|
|
inp["B"] = []string{}
|
|
|
|
c := make(map[string]interface{})
|
|
c["X"] = ""
|
|
d := make(map[string]interface{})
|
|
d["a"] = ""
|
|
|
|
c["Y"] = d
|
|
inp["C"] = c
|
|
|
|
assert.Equal(t,
|
|
[]string{"A", "B", "C/X", "C/Y/a"},
|
|
flattenConfigKeys(inp),
|
|
"Input didn't flatten correctly.",
|
|
)
|
|
}
|
|
|
|
func TestCheckpointTelemetry(t *testing.T) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
t.Error("a noop CheckpointTelemetry should not to panic but it did\n", r)
|
|
}
|
|
}()
|
|
|
|
// A null CheckpointTelemetry obtained in Packer when the CHECKPOINT_DISABLE env var is set results in a NOOP reporter
|
|
// The null reporter can be executable as a configured reporter but does not report any telemetry data.
|
|
var c *CheckpointTelemetry
|
|
c.SetTemplateType(HCL2Template)
|
|
c.SetBundledUsage()
|
|
c.AddSpan("mockprovisioner", "provisioner", nil)
|
|
if err := c.ReportPanic("Bogus Panic"); err != nil {
|
|
t.Errorf("calling ReportPanic on a nil checkpoint reporter should not error")
|
|
}
|
|
if err := c.Finalize("test", 1, errors.New("Bogus Error")); err != nil {
|
|
t.Errorf("calling Finalize on a nil checkpoint reporter should not error")
|
|
}
|
|
}
|