mirror of
https://github.com/containers/podman.git
synced 2025-05-25 02:57:21 +08:00
syntax updated for podman import --change
currently, podman import change do not support syntax like - KEY val - KEY ["val"] This adds support for both of these syntax along with KEY=val Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
This commit is contained in:
@ -1,8 +1,9 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -17,3 +18,71 @@ func TestStringInSlice(t *testing.T) {
|
||||
// string is not in empty slice
|
||||
assert.False(t, StringInSlice("one", []string{}))
|
||||
}
|
||||
|
||||
func TestParseChanges(t *testing.T) {
|
||||
// CMD=/bin/sh
|
||||
_, vals, err := ParseChanges("CMD=/bin/sh")
|
||||
assert.EqualValues(t, []string{"/bin/sh"}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// CMD [/bin/sh]
|
||||
_, vals, err = ParseChanges("CMD [/bin/sh]")
|
||||
assert.EqualValues(t, []string{"/bin/sh"}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// CMD ["/bin/sh"]
|
||||
_, vals, err = ParseChanges(`CMD ["/bin/sh"]`)
|
||||
assert.EqualValues(t, []string{`"/bin/sh"`}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// CMD ["/bin/sh","-c","ls"]
|
||||
_, vals, err = ParseChanges(`CMD ["/bin/sh","c","ls"]`)
|
||||
assert.EqualValues(t, []string{`"/bin/sh"`, `"c"`, `"ls"`}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// CMD ["/bin/sh","arg-with,comma"]
|
||||
_, vals, err = ParseChanges(`CMD ["/bin/sh","arg-with,comma"]`)
|
||||
assert.EqualValues(t, []string{`"/bin/sh"`, `"arg-with`, `comma"`}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// CMD "/bin/sh"]
|
||||
_, _, err = ParseChanges(`CMD "/bin/sh"]`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value "/bin/sh"]`, err.Error())
|
||||
|
||||
// CMD [bin/sh
|
||||
_, _, err = ParseChanges(`CMD "/bin/sh"]`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value "/bin/sh"]`, err.Error())
|
||||
|
||||
// CMD ["/bin /sh"]
|
||||
_, _, err = ParseChanges(`CMD ["/bin /sh"]`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value "/bin /sh"`, err.Error())
|
||||
|
||||
// CMD ["/bin/sh", "-c","ls"] whitespace between values
|
||||
_, vals, err = ParseChanges(`CMD ["/bin/sh", "c","ls"]`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value "c"`, err.Error())
|
||||
|
||||
// CMD?
|
||||
_, _, err = ParseChanges(`CMD?`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid format CMD?`, err.Error())
|
||||
|
||||
// empty values for CMD
|
||||
_, _, err = ParseChanges(`CMD `)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value `, err.Error())
|
||||
|
||||
// LABEL=blue=image
|
||||
_, vals, err = ParseChanges(`LABEL=blue=image`)
|
||||
assert.EqualValues(t, []string{"blue", "image"}, vals)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// LABEL = blue=image
|
||||
_, vals, err = ParseChanges(`LABEL = blue=image`)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, `invalid value = blue=image`, err.Error())
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user