diff --git a/Dockerfile b/Dockerfile index f04f6cb19..81697cdc4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # vim: set ft=dockerfile: ARG GOVERSION=1.21.5 -FROM golang:${GOVERSION}-alpine AS build +FROM golang:${GOVERSION}-alpine3.18 AS build WORKDIR /go/src/crowdsec diff --git a/test/bats/01_crowdsec.bats b/test/bats/01_crowdsec.bats index fb99d1ec3..f8034ae5b 100644 --- a/test/bats/01_crowdsec.bats +++ b/test/bats/01_crowdsec.bats @@ -232,6 +232,8 @@ teardown() { ACQUIS_YAML=$(config_get '.crowdsec_service.acquisition_path') config_set "$ACQUIS_YAML" 'del(.filenames)' + # if filenames are missing, it won't be able to detect source type + config_set "$ACQUIS_YAML" '.source="file"' rune -1 wait-for "${CROWDSEC}" assert_stderr --partial "failed to configure datasource file: no filename or filenames configuration provided" diff --git a/test/bats/09_context.bats b/test/bats/09_context.bats index c56d3e773..6163d53f9 100644 --- a/test/bats/09_context.bats +++ b/test/bats/09_context.bats @@ -62,7 +62,8 @@ teardown() { @test "context file is good" { echo '{"source_ip":["evt.Parsed.source_ip"]}' > "$CONTEXT_YAML" rune -0 "$CROWDSEC" -t --debug - assert_stderr --partial 'console context to send: {"source_ip":["evt.Parsed.source_ip"]}' + # the log content may have quotes escaped or not, depending on tty detection + assert_stderr --regexp 'console context to send: .*source_ip.*evt.Parsed.source_ip' } @test "context file is from hub (local item)" { @@ -71,7 +72,7 @@ teardown() { echo '{"context":{"source_ip":["evt.Parsed.source_ip"]}}' > "$CONFIG_DIR/contexts/foobar.yaml" rune -0 "$CROWDSEC" -t --trace assert_stderr --partial "loading console context from $CONFIG_DIR/contexts/foobar.yaml" - assert_stderr --partial 'console context to send: {"source_ip":["evt.Parsed.source_ip"]}' + assert_stderr --regexp 'console context to send: .*source_ip.*evt.Parsed.source_ip' } @test "merge multiple contexts" { @@ -81,7 +82,7 @@ teardown() { rune -0 "$CROWDSEC" -t --trace assert_stderr --partial "loading console context from $CONFIG_DIR/contexts/one.yaml" assert_stderr --partial "loading console context from $CONFIG_DIR/contexts/two.yaml" - assert_stderr --partial 'console context to send: {"one":["evt.Parsed.source_ip"],"two":["evt.Parsed.source_ip"]}' + assert_stderr --regexp 'console context to send: .*one.*evt.Parsed.source_ip.*two.*evt.Parsed.source_ip' } @test "merge contexts from hub and context.yaml file" { @@ -91,5 +92,5 @@ teardown() { rune -0 "$CROWDSEC" -t --trace assert_stderr --partial "loading console context from $CONFIG_DIR/contexts/one.yaml" assert_stderr --partial "loading console context from $CONFIG_DIR/console/context.yaml" - assert_stderr --partial 'console context to send: {"one":["evt.Parsed.source_ip","evt.Parsed.source_ip_2"]}' + assert_stderr --regexp 'console context to send: .*one.*evt.Parsed.source_ip.*evt.Parsed.source_ip_2' } diff --git a/test/lib/config/config-global b/test/lib/config/config-global index 22ac76df6..68346c188 100755 --- a/test/lib/config/config-global +++ b/test/lib/config/config-global @@ -54,10 +54,18 @@ remove_init_data() { # we need a separate function for initializing config when testing package # because we want to test the configuration as well +config_prepare() { + # remove trailing slash from CONFIG_DIR + # since it's assumed to be missing during the tests + yq e -i ' + .config_paths.config_dir |= sub("/$", "") + ' "${CONFIG_DIR}/config.yaml" +} make_init_data() { ./bin/assert-crowdsec-not-running || die "Cannot create fixture data." + config_prepare ./instance-db config-yaml ./instance-db setup