From fa86297c36286e21309952599cca20a30a2932d6 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 8 Nov 2021 09:45:24 -0500 Subject: [PATCH] proxy_test: Test `GetConfig` Now that we have a test suite, let's use it more. Signed-off-by: Colin Walters --- integration/proxy_test.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/integration/proxy_test.go b/integration/proxy_test.go index 7a7d8946..30b33556 100644 --- a/integration/proxy_test.go +++ b/integration/proxy_test.go @@ -14,6 +14,7 @@ import ( "gopkg.in/check.v1" "github.com/containers/image/v5/manifest" + imgspecv1 "github.com/opencontainers/image-spec/specs-go/v1" ) // This image is known to be x86_64 only right now @@ -230,7 +231,7 @@ type byteFetch struct { err error } -func runTestGetManifest(p *proxy, img string) error { +func runTestGetManifestAndConfig(p *proxy, img string) error { v, err := p.callNoFd("OpenImage", []interface{}{knownNotManifestListedImage_x8664}) if err != nil { return err @@ -251,6 +252,21 @@ func runTestGetManifest(p *proxy, img string) error { return err } + v, configBytes, err := p.callReadAllBytes("GetConfig", []interface{}{imgid}) + if err != nil { + return err + } + var config imgspecv1.ImageConfig + err = json.Unmarshal(configBytes, &config) + if err != nil { + return err + } + + // Validate that the config seems sane + if len(config.Cmd) == 0 && len(config.Entrypoint) == 0 { + return fmt.Errorf("No CMD or ENTRYPOINT set") + } + _, err = p.callNoFd("CloseImage", []interface{}{imgid}) return nil @@ -260,13 +276,13 @@ func (s *ProxySuite) TestProxy(c *check.C) { p, err := newProxy() c.Assert(err, check.IsNil) - err = runTestGetManifest(p, knownNotManifestListedImage_x8664) + err = runTestGetManifestAndConfig(p, knownNotManifestListedImage_x8664) if err != nil { err = fmt.Errorf("Testing image %s: %v", knownNotManifestListedImage_x8664, err) } c.Assert(err, check.IsNil) - err = runTestGetManifest(p, knownListImage) + err = runTestGetManifestAndConfig(p, knownListImage) if err != nil { err = fmt.Errorf("Testing image %s: %v", knownListImage, err) }