viewing logs

job succeeded

kracht

time taken
8 seconds
started at
Fri Aug 15 14:54:59 2025
updated at
Fri Aug 15 14:55:07 2025
log uuid
248926d8-e4e8-4fcf-a5bf-52b9d37f3922
inspect the job's lambda expression
(lambda()
  `((task . ("make-test" "pull-and-deploy"))
    (project . "kracht")
    (branch-name . "trunk")            
    (clone-url . "https://codeberg.org/jjba23/kracht.git")))
    

starting new job...

-> running command: cd /etc/byggsteg/job-clone/kracht/trunk && uname -a
Linux wolk-jjba 6.15.9-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux

-> running command: cd /etc/byggsteg/job-clone/kracht/trunk && git pull
Updating cd145c4..be3feee
Fast-forward
 .gitignore                         |   3 +-
 .woodpecker/byggsteg.yaml          |   6 +-
 Makefile                           |  23 ++-
 README.org                         |   4 +
 manifest.scm                       |  33 +++-
 test/kracht/prelude-test.scm       | 376 -----------------------------------
 test/kracht/test-runners.scm       | 250 -----------------------
 test/kracht/test-utils.scm         |  28 ---
 test/veritas/unit/prelude-spec.scm | 394 +++++++++++++++++++++++++++++++++++++
 9 files changed, 454 insertions(+), 663 deletions(-)
 delete mode 100644 test/kracht/prelude-test.scm
 delete mode 100644 test/kracht/test-runners.scm
 delete mode 100644 test/kracht/test-utils.scm
 create mode 100644 test/veritas/unit/prelude-spec.scm

-> running command: cd /etc/byggsteg/job-clone/kracht/trunk && git log --name-status HEAD^..HEAD
commit be3feee1f20b933d4abce660c3415bb2f1ccc116
Merge: cd145c4 efe8996
Author: Josep Bigorra (Joe) <jjbigorra@gmail.com>
Date:   Fri Aug 15 14:53:32 2025 +0200

    Merge pull request '?????? refactor: Use Veritas for unit tests' (#1) from veritas into trunk
    
    Reviewed-on: https://codeberg.org/jjba23/kracht/pulls/1

commit efe8996df67eeb9c7f26e1be67bd654dafeba812
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Fri Aug 15 14:52:59 2025 +0200

    ?????? refactor: Migrated all tests to Veritas

M	test/veritas/unit/prelude-spec.scm

commit a886582393aa4f03bcb8cbd747684273e2e72e46
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Fri Aug 15 14:33:18 2025 +0200

    ???? docs: Add API docs

M	.gitignore
M	.woodpecker/byggsteg.yaml
M	Makefile
M	README.org
M	manifest.scm

commit c80165b77e303f44b6799de45a67dc78f959a77c
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Sun Aug 10 21:31:51 2025 +0200

    ?????? refactor: Continue refactoring tests to Veritas

M	test/veritas/unit/prelude-spec.scm

commit f980321acec60ae3c71d71a42fbd46bc31749e0e
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Sun Aug 10 21:18:42 2025 +0200

    ???? ci: Simplification of pipeline

M	.woodpecker/byggsteg.yaml

commit 645308922d17199690dd76e43852510514271263
Merge: 2262bc0 cd145c4
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Sun Aug 10 21:18:00 2025 +0200

    Merge branch 'trunk' of ssh://codeberg.org/jjba23/kracht into veritas

commit 2262bc0c143ac1773f57f0ae30628193bc31f5af
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Thu Jul 31 20:25:13 2025 +0200

    ?????? update: Update CI images, new standard

M	.woodpecker/byggsteg.yaml

commit fc4859603d30b7435da99245bc72a54eed299d59
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Thu Jul 31 20:21:58 2025 +0200

    ?????? refactor: Use Veritas for unit tests
    
    Begin introduction of Veritas test framework
    Refactor existing tests
    
    Keywords: #test #veritas

M	Makefile
M	manifest.scm
D	test/kracht/prelude-test.scm
D	test/kracht/test-runners.scm
D	test/kracht/test-utils.scm
A	test/veritas/unit/prelude-spec.scm

-> running command: cd /etc/byggsteg/job-clone/kracht/trunk && make test
make[1]: Entering directory '/etc/byggsteg/job-clone/kracht/trunk'
guix shell -m manifest.scm -- \
	guile -L ./src \
	-L ./test \
	-c "((@ (veritas runner) run-tests))"

scanning directories for unit tests...
scanning present working directory for unit tests...

found unit tests: (prelude-spec.scm)


running unit tests from file: prelude-spec.scm, entrypoint: spec


1 + 1 = 2 and 2 + 2 = 4

[INFO] 3 + 3 = 6 and 4 + 4 = 8

[INFO] 5 + 5 = 10 and 6 + 6 = 12

[ERROR] fake message: something totally expected

warning! could not decode pair (): wrong-type-arg: (car Wrong type argument in position 1 (expecting pair): ~S (()) (()))

warning! could not decode pair (key-only): wrong-type-arg: (car Wrong type argument in position 1 (expecting pair): ~S (()) (()))

warning! could not decode pair (key1): wrong-type-arg: (car Wrong type argument in position 1 (expecting pair): ~S (()) (()))

warning! could not decode pair (key2): wrong-type-arg: (car Wrong type argument in position 1 (expecting pair): ~S (()) (()))

warning! could not decode pair (b): wrong-type-arg: (car Wrong type argument in position 1 (expecting pair): ~S (()) (()))

+----------------------------------------------+
[? suite] Another test suite
  [? test] html-escape tests
    [?? assert] C-cedilla
    ? pass - expect: ç, got: ç
    [?? assert] Mix of quotes
    ? pass - expect: He's a "guy"., got: He's a "guy".
    [?? assert] Accented u
    ? pass - expect: ú, got: ú
    [?? assert] Accented i
    ? pass - expect: í, got: í
    [?? assert] Double quote
    ? pass - expect: ", got: "
    [?? assert] String with multiple occurrences
    ? pass - expect: He said, "It's a beautiful day!", got: He said, "It's a beautiful day!"
    [?? assert] Example sentence escaped
    ? pass - expect: Ólá, múndo! Isto é um teste., got: Ólá, múndo! Isto é um teste.
    [?? assert] N-tilde
    ? pass - expect: ñ, got: ñ
    [?? assert] Multiple accents
    ? pass - expect: Árvore é bonita, got: Árvore é bonita
    [?? assert] Accented E
    ? pass - expect: É, got: É
    [?? assert] Accented o
    ? pass - expect: ó, got: ó
    [?? assert] Accented U
    ? pass - expect: Ú, got: Ú
    [?? assert] Accented O
    ? pass - expect: Ó, got: Ó
    [?? assert] String with no special characters
    ? pass - expect: Hello, World!, got: Hello, World!
    [?? assert] Empty string
    ? pass - expect: , got: 
    [?? assert] Accented I
    ? pass - expect: Í, got: Í
    [?? assert] Single quote
    ? pass - expect: ', got: '
  [? test] Round-trip tests
    [?? assert] Example sentence
    ? pass - expect: Ol?, m?ndo! Isto ? um teste., got: Ol?, m?ndo! Isto ? um teste.
    [?? assert] Unescape then escape (assuming valid entities)
    ? pass - expect: <div>'test'</div>, got: <div>'test'</div>
    [?? assert] Escape then unescape
    ? pass - expect: Hello, it's a "test" with ?????., got: Hello, it's a "test" with ?????.
    [?? assert] Unescape then escape (for chars in alist)
    ? pass - expect: 'áéíóú", got: 'áéíóú"
  [? test] log tests
    [?? assert] log-message behaves as expected
    ? pass - expect: #t, got: #t
    [?? assert] log behaves as expected
    ? pass - expect: #t, got: #t
    [?? assert] log-error behaves as expected
    ? pass - expect: #t, got: #t
    [?? assert] log-info behaves as expected
    ? pass - expect: #t, got: #t
  [? test] html-unescape tests
    [?? assert] C-cedilla entity
    ? pass - expect: ?, got: ?
    [?? assert] Single apos entity
    ? pass - expect: ', got: '
    [?? assert] Multiple entity occurrences
    ? pass - expect: It's a "quote"., got: It's a "quote".
    [?? assert] Accented A entity
    ? pass - expect: ?, got: ?
    [?? assert] Single quot entity
    ? pass - expect: ", got: "
    [?? assert] Accented a entity
    ? pass - expect: ?, got: ?
    [?? assert] Mix of entities
    ? pass - expect: He's a "guy"., got: He's a "guy".
    [?? assert] Empty string
    ? pass - expect: , got: 
    [?? assert] Example sentence unescaped
    ? pass - expect: ?l?, m?ndo! Isto ? um teste., got: ?l?, m?ndo! Isto ? um teste.
    [?? assert] String with no entities
    ? pass - expect: Hello, World!, got: Hello, World!
  [? test] sha tests
    [?? assert] get-short-commit-sha works as expected
    ? pass - expect: #t, got: #t
+----------------------------------------------+
[? suite] Prelude test suite
  [? test] alist-from-url-encoded-body
    [?? assert] space character (%20)
    ? pass - expect: ((message . hello world)), got: ((message . hello world))
    [?? assert] ampersand character (%26)
    ? pass - expect: ((data . one&two)), got: ((data . one&two))
    [?? assert] empty body
    ? pass - expect: (), got: ()
    [?? assert] semicolon character (%3B)
    ? pass - expect: ((cookie . id;user)), got: ((cookie . id;user))
    [?? assert] parentheses characters (%28, %29)
    ? pass - expect: ((func . f(x))), got: ((func . f(x)))
    [?? assert] curly braces characters (%7B, %7D)
    ? pass - expect: ((json . {data})), got: ((json . {data}))
    [?? assert] dollar sign character (%24)
    ? pass - expect: ((amount . $100)), got: ((amount . $100))
    [?? assert] multiple keys, no equals sign
    ? pass - expect: ((key1 . ) (key2 . )), got: ((key1 . ) (key2 . ))
    [?? assert] question mark character (%3F)
    ? pass - expect: ((query . what?)), got: ((query . what?))
    [?? assert] multiple key-value pairs
    ? pass - expect: ((name . Jane Doe) (age . 30)), got: ((name . Jane Doe) (age . 30))
    [?? assert] hash/pound sign character (%23)
    ? pass - expect: ((tag . #important)), got: ((tag . #important))
    [?? assert] empty key and empty value
    ? pass - expect: (), got: ()
    [?? assert] colon character (%3A)
    ? pass - expect: ((protocol . http:)), got: ((protocol . http:))
    [?? assert] equals sign character (%3D)
    ? pass - expect: ((equation . x=y)), got: ((equation . x=y))
    [?? assert] unicode characters (e.g., '?' - %C3%A9 in UTF-8)
    ? pass - expect: ((name . fianc?)), got: ((name . fianc?))
    [?? assert] duplicate keys
    ? pass - expect: ((item . apple) (item . orange)), got: ((item . apple) (item . orange))
    [?? assert] mixed valid and malformed pairs
    ? pass - expect: ((a . 1) (b . ) (c . 3)), got: ((a . 1) (b . ) (c . 3))
    [?? assert] at symbol character (%40)
    ? pass - expect: ((email . test@example.com)), got: ((email . test@example.com))
    [?? assert] value with no key (unlikely but possible from split)
    ? pass - expect: (( . value)), got: (( . value))
    [?? assert] slash character (%2F)
    ? pass - expect: ((path . /usr/local)), got: ((path . /usr/local))
    [?? assert] plus sign (%2B) - often used for space, but distinct from actual '+'
    ? pass - expect: ((code . a+b)), got: ((code . a+b))
    [?? assert] exclamation mark character (%21)
    ? pass - expect: ((warning . danger!)), got: ((warning . danger!))
    [?? assert] single key, no equals sign
    ? pass - expect: ((key-only . )), got: ((key-only . ))
    [?? assert] keys and values with special characters (URL-encoded)
    ? pass - expect: ((param_1 . value with spaces) (param/2 . another_value!)), got: ((param_1 . value with spaces) (param/2 . another_value!))
    [?? assert] comma character (%2C)
    ? pass - expect: ((list . a,b,c)), got: ((list . a,b,c))
    [?? assert] single key value pair
    ? pass - expect: ((name . John Doe)), got: ((name . John Doe))
    [?? assert] key with no value
    ? pass - expect: ((key . )), got: ((key . ))
    [?? assert] square brackets characters (%5B, %5D)
    ? pass - expect: ((array . [1,2])), got: ((array . [1,2]))
    [?? assert] backslash character (%5C)
    ? pass - expect: ((winpath . C:\Users\)), got: ((winpath . C:\Users\))
    [?? assert] multiple encoded characters in one value
    ? pass - expect: ((complex . a&b=c?d e)), got: ((complex . a&b=c?d e))
  [? test] string-drop tests
    [?? assert] string-drop-first-last-line normal case
    ? pass - expect: middle line, got: middle line
    [?? assert] string-drop-first-last-line two lines
    ? pass - expect: , got: 
    [?? assert] string-drop-first-last normal case
    ? pass - expect: ell, got: ell
    [?? assert] string-drop-first-last-line single line
    ? pass - expect: , got: 
    [?? assert] string-drop-first-last empty string
    ? pass - expect: , got: 
    [?? assert] string-drop-first-last-line empty input
    ? pass - expect: , got: 
    [?? assert] string-drop-first-last single char
    ? pass - expect: a, got: a
    [?? assert] string-drop-first-last two chars
    ? pass - expect: ab, got: ab
  [? test] non-empty-string? tests
    [?? assert] non-empty-string? with #f
    ? pass - expect: #f, got: #f
    [?? assert] non-empty-string? with #t
    ? pass - expect: #t, got: #t
    [?? assert] non-empty-string? with empty string
    ? pass - expect: #f, got: #f
    [?? assert] non-empty-string? with non-empty string
    ? pass - expect: #t, got: #t
    [?? assert] non-empty-string? with whitespace
    ? pass - expect: #t, got: #t
  [? test] assoc-ref-or-empty-str tests
    [?? assert] key found - string value
    ? pass - expect: hello, got: hello
    [?? assert] key found - non-string value
    ? pass - expect: 2, got: 2
    [?? assert] empty alist
    ? pass - expect: , got: 
    [?? assert] key not found
    ? pass - expect: , got: 
    [?? assert] key is last element
    ? pass - expect: value, got: value
    [?? assert] key is first element
    ? pass - expect: value, got: value
  [? test] empty-string? tests
    [?? assert] empty-string? with non-empty string
    ? pass - expect: #f, got: #f
    [?? assert] empty-string? with empty string
    ? pass - expect: #t, got: #t
    [?? assert] empty-string? with whitespace
    ? pass - expect: #f, got: #f
?? info - ran 2 tasks in: 0 seconds, 8219 microseconds

finished running tests
make[1]: Leaving directory '/etc/byggsteg/job-clone/kracht/trunk'

-> running command: cd /etc/byggsteg/job-clone/kracht/trunk && sudo make deploy
rm -rfv doc
guix shell -m manifest.scm -- documenta api ./src/kracht
API documentation saved to doc/api
guix shell -m manifest.scm -- texi2any -v --html \
	--css-ref="https://jointhefreeworld.org/static-assets/api-docs/css/style.css" ./doc/api/index.texi
mv ./index ./doc/api-dist
rm -rfv "/srv/http/jointhefreeworld.org"/api-docs/kracht
'/srv/http/jointhefreeworld.org/api-docs/kracht/kracht_005fprelude.html' is verwijderd
'/srv/http/jointhefreeworld.org/api-docs/kracht/API.html' is verwijderd
map '/srv/http/jointhefreeworld.org/api-docs/kracht' is verwijderd
mkdir -p "/srv/http/jointhefreeworld.org"/api-docs/kracht
mv doc/api-dist/* "/srv/http/jointhefreeworld.org"/api-docs/kracht/
rm -rfv doc
map 'doc/api-dist' is verwijderd
'doc/api/index.texi' is verwijderd
map 'doc/api' is verwijderd
map 'doc' is verwijderd