Run tests in parallel and output github formats on workflow (#543)

* Run tests in parallel and output github formats on workflow

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix broken parallel tests

We were using a fixed file for the tests which several tests could be
accessing at the same time.

This fixes it by setting a temp random file at the test start

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix the tests logging to stdout

Signed-off-by: Itxaka <itxaka@kairos.io>

* Drop the verbose

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix agent test

Signed-off-by: Itxaka <itxaka@kairos.io>

* Let the event consumer create the logfile or whatever

Signed-off-by: Itxaka <itxaka@kairos.io>

* Drop Focus

Signed-off-by: Itxaka <itxaka@kairos.io>

---------

Signed-off-by: Itxaka <itxaka@kairos.io>
This commit is contained in:
Itxaka
2024-09-17 17:51:11 +02:00
committed by GitHub
parent 3e99d75331
commit fbb64f2a82
7 changed files with 41 additions and 45 deletions

View File

@@ -49,14 +49,19 @@ var _ = Describe("Types", Label("types", "config"), func() {
var logger sdkTypes.KairosLogger
var ci *v1mock.FakeCloudInitRunner
var c *config.Config
var memLog bytes.Buffer
BeforeEach(func() {
memLog = bytes.Buffer{}
logger = sdkTypes.NewBufferLogger(&memLog)
logger.SetLevel("debug")
fs, cleanup, err = vfst.NewTestFS(nil)
Expect(err).ToNot(HaveOccurred())
mounter = v1mock.NewErrorMounter()
runner = v1mock.NewFakeRunner()
client = &v1mock.FakeHTTPClient{}
sysc = &v1mock.FakeSyscall{}
logger = sdkTypes.NewNullLogger()
ci = &v1mock.FakeCloudInitRunner{}
c = config.NewConfig(
config.WithFs(fs),
@@ -535,10 +540,11 @@ cloud-init-paths:
ghwTest.Clean()
})
It("Reads properly the cloud config for install", func() {
cfg, err := config.Scan(collector.Directories([]string{dir}...),
cfg, err := config.ScanNoLogs(collector.Directories([]string{dir}...),
collector.NoLogs,
)
cfg.Fs = fs
cfg.Logger = logger
Expect(err).ToNot(HaveOccurred())
// Once we got the cfg override the fs to our test fs
@@ -559,13 +565,14 @@ cloud-init-paths:
})
It("Reads properly the cloud config for reset", func() {
bootedFrom = constants.SystemLabel
cfg, err := config.Scan(collector.Directories([]string{dir}...), collector.NoLogs)
cfg, err := config.ScanNoLogs(collector.Directories([]string{dir}...), collector.NoLogs)
Expect(err).ToNot(HaveOccurred())
// Override the config with our test params
cfg.Runner = runner
cfg.Fs = fs
cfg.Mounter = mounter
cfg.CloudInitRunner = ci
cfg.Logger = logger
spec, err := config.ReadSpecFromCloudConfig(cfg, "reset")
Expect(err).ToNot(HaveOccurred())
resetSpec := spec.(*v1.ResetSpec)
@@ -574,37 +581,33 @@ cloud-init-paths:
Expect(resetSpec.Passive.Label).To(Equal("MY_LABEL"))
})
It("Reads properly the cloud config for upgrade", func() {
cfg, err := config.Scan(collector.Directories([]string{dir}...), collector.NoLogs)
cfg, err := config.ScanNoLogs(collector.Directories([]string{dir}...), collector.NoLogs)
Expect(err).ToNot(HaveOccurred())
// Override the config with our test params
cfg.Runner = runner
cfg.Fs = fs
cfg.Mounter = mounter
cfg.CloudInitRunner = ci
cfg.Logger = logger
spec, err := config.ReadSpecFromCloudConfig(cfg, "upgrade")
Expect(err).ToNot(HaveOccurred())
upgradeSpec := spec.(*v1.UpgradeSpec)
Expect(upgradeSpec.RecoveryUpgrade()).To(BeTrue())
})
It("Fails when a wrong action is read", func() {
cfg, err := config.Scan(collector.Directories([]string{dir}...), collector.NoLogs)
cfg, err := config.ScanNoLogs(collector.Directories([]string{dir}...), collector.NoLogs)
cfg.Logger = logger
Expect(err).ToNot(HaveOccurred())
_, err = config.ReadSpecFromCloudConfig(cfg, "nope")
Expect(err).To(HaveOccurred())
})
It("Sets info level if its not on the cloud-config", func() {
// Now again but with no config
cfg, err := config.Scan(collector.Directories([]string{""}...), collector.NoLogs)
Expect(err).ToNot(HaveOccurred())
Expect(cfg.Logger.GetLevel()).To(Equal(zerolog.InfoLevel))
})
It("Sets debug level if its on the cloud-config", func() {
ccdata := []byte(`#cloud-config
debug: true
`)
err = os.WriteFile(filepath.Join(dir, "cc.yaml"), ccdata, os.ModePerm)
Expect(err).ToNot(HaveOccurred())
cfg, err := config.Scan(collector.Directories([]string{dir}...), collector.NoLogs)
cfg, err := config.ScanNoLogs(collector.Directories([]string{dir}...), collector.NoLogs)
Expect(err).ToNot(HaveOccurred())
Expect(cfg.Logger.GetLevel()).To(Equal(zerolog.DebugLevel))