Skip to content
Snippets Groups Projects
Verified Commit 205aa841 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

feat: #1

parent c2f88d1b
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,8 @@ tasks:
test:
desc: Execute unit tests in Go.
env:
TEST_BY_TASK: true
cmds:
- echo "Execute unit tests in Go."
- go test -cover -v ./...
......@@ -25,6 +27,8 @@ tasks:
test-fuzz:
desc: Conduct fuzzing tests.#
env:
TEST_BY_TASK: true
cmds:
- echo "Conduct fuzzing tests."
- go test -v -fuzztime=30s -fuzz=Fuzz ./...
......
......@@ -133,8 +133,6 @@ EOF
#set -euo pipefail
set -x
export TEST_BY_TASK=true
PATH="''${PATH}":${pkgs.coreutils}/bin
PATH="''${PATH}":${pkgs.findutils}/bin
PATH="''${PATH}":${pkgs.jq}/bin/
......@@ -256,6 +254,8 @@ tasks:
test:
desc: Execute unit tests in Go.
env:
TEST_BY_TASK: true
cmds:
- echo "Execute unit tests in Go."
- go test -cover -v ./...
......@@ -264,6 +264,8 @@ tasks:
test-fuzz:
desc: Conduct fuzzing tests.#
env:
TEST_BY_TASK: true
cmds:
- echo "Conduct fuzzing tests."
- go test -v -fuzztime=30s -fuzz=Fuzz ./...
......
......@@ -40,6 +40,8 @@ require (
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.26.0 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/sys v0.13.0 // indirect
......
......@@ -12,8 +12,7 @@ import (
func TestRoundTrip(t *testing.T) {
if os.Getenv("TEST_BY_TASK") != "" {
t.Skip("Skipping test because CI_SERVER is set")
// TODO: run this test in CI
t.Skip("Skipping test because TEST_BY_TASK is set")
}
// type JobImport struct {
......
package jobqueue
import "go.uber.org/zap"
type Logger interface {
Info(msg string, keysAndValues ...interface{})
Error(msg string, keysAndValues ...interface{})
}
type ZapAdapter struct {
logger *zap.Logger
}
func (z *ZapAdapter) Info(msg string, keysAndValues ...interface{}) {
z.logger.Info(msg, zap.Any("info", keysAndValues))
}
func (z *ZapAdapter) Error(msg string, keysAndValues ...interface{}) {
z.logger.Error(msg, zap.Any("error", keysAndValues))
}
......@@ -26,6 +26,7 @@ type Manager struct {
stateManager StateManager
cronInstance *cron.Cron
logger Logger
mu sync.Mutex
}
......@@ -212,7 +213,7 @@ func (m *Manager) Stop() error {
m.eventBus.Unsubscribe(QueueJob, m.jobEventCh)
m.eventBus.Unsubscribe(JobReady, m.jobEventCh)
close(m.jobEventCh)
var wrappedErr error
......@@ -247,6 +248,10 @@ func (m *Manager) Stop() error {
return wrappedErr
}
func (m *Manager) SetLogger(logger Logger) {
m.logger = logger
}
func (m *Manager) handleJobEvents() {
for event := range m.jobEventCh {
......
......@@ -82,10 +82,16 @@ func TestCronScheduler_BasicFunctionality(t *testing.T) {
eventBus := NewEventBus()
job := NewJob[DummyResult]("test-job", &DummyRunnable{})
c := cron.New(cron.WithSeconds())
genericJob := GenericJob(job)
cronScheduler := CronScheduler{cron: cron.New(cron.WithSeconds()), Spec: "*/1 * * * * *"}
cronScheduler := CronScheduler{
cron: c,
Spec: "* * * * * *",
}
_ = cronScheduler.Schedule(genericJob, eventBus)
c.Start()
defer c.Stop()
jobChannel := make(chan interface{})
......@@ -109,20 +115,20 @@ func TestCronScheduler_StopScheduler(t *testing.T) {
c := cron.New(cron.WithSeconds())
cronScheduler := CronScheduler{cron: c, Spec: "*/1 * * * * *"}
cronScheduler := CronScheduler{cron: c, Spec: "* * * * * *"}
job := NewJob[DummyResult]("test-job", &DummyRunnable{})
genericJob := GenericJob(job)
_ = cronScheduler.Schedule(genericJob, eventBus)
c.Start()
defer c.Stop()
jobChannel := make(chan interface{})
go func() {
for _ = range jobChannel {
atomic.AddInt32(&count, 1)
}
}()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment