packer_test: add FileExists checker

Some tests will create files and directories as part of the execution
path for Packer, and we need a way to check this, so this commit adds a
new file gadget to do those checks after a command executes.
pull/13233/head
Lucas Bajolet 1 year ago committed by Lucas Bajolet
parent ac899c44c2
commit 44a94911da

@ -0,0 +1,35 @@
package check
import (
"fmt"
"os"
)
type fileExists struct {
filepath string
isDir bool
}
func (fe fileExists) Check(_, _ string, _ error) error {
st, err := os.Stat(fe.filepath)
if err != nil {
return fmt.Errorf("failed to stat %q: %s", fe.filepath, err)
}
if st.IsDir() && !fe.isDir {
return fmt.Errorf("file %q is a directory, wasn't supposed to be", fe.filepath)
}
if !st.IsDir() && fe.isDir {
return fmt.Errorf("file %q is not a directory, was supposed to be", fe.filepath)
}
return nil
}
func FileExists(filePath string, isDir bool) Checker {
return fileExists{
filepath: filePath,
isDir: isDir,
}
}
Loading…
Cancel
Save