packer_test: add test for multiple plugin paths

When the PACKER_PLUGIN_PATH envvar is defined in the environment, Packer
uses it as the source of truth for the directories in which to look for
plugins to load.

Previously, we used to support multiple directories separated by the
OS-specific path separator (i.e. : on UNIX, ; on Windows).

Since this changed, and Packer returns an error to the user, we make
sure that this is well-documented and tested through this extra test.
pull/13032/head
Lucas Bajolet 2 years ago committed by Lucas Bajolet
parent ae78d78736
commit 830ac98e39

@ -3,6 +3,7 @@ package packer_test
import (
"crypto/sha256"
"fmt"
"os"
"path/filepath"
"runtime"
"strings"
@ -140,3 +141,26 @@ func (ts *PackerTestSuite) TestLoadWithSHAMismatches() {
Grep(`Checksums \(\*sha256\.digest\) did not match.`, grepStderr))
})
}
func (ts *PackerTestSuite) TestPluginPathEnvvarWithMultiplePaths() {
pluginDirOne, cleanup := ts.MakePluginDir("1.0.10")
defer cleanup()
pluginDirTwo, cleanup := ts.MakePluginDir("1.0.9")
defer cleanup()
pluginDirVal := fmt.Sprintf("%s%c%s", pluginDirOne, os.PathListSeparator, pluginDirTwo)
ts.Run("load plugin with two dirs - not supported anymore, should error", func() {
ts.PackerCommand().UsePluginDir(pluginDirVal).
SetArgs("plugins", "installed").
Assert(ts.T(), MustFail(),
Grep("Multiple paths are no longer supported for PACKER_PLUGIN_PATH"),
PipeChecker{
check: IntCompare(eq, 2),
pipers: []Pipe{
PipeGrep(`\* PACKER_PLUGIN_PATH=`),
LineCount(),
},
})
})
}

Loading…
Cancel
Save