Shirakumo / radiance

A Common Lisp web application environment
https://shirakumo.github.io/radiance/
zlib License
311 stars 19 forks source link

Tests failed to run - missing configuraton #56

Closed Hellseher closed 1 year ago

Hellseher commented 1 year ago

Hi,

How to run tests automaticaly? So far I've got this error:

Unhandled RADIANCE-CORE:ENVIRONMENT-NOT-SET in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                         {100B1B0083}>:
  The application environment was not yet set but is required.
This means you are either using Radiance for the first time or forgot to set it up properly.
In the first case, simply use the CONTINUE restart. In the second, make sure to adjust your
configuration and use the SETF ENVIRONMENT restart to set an explicit environment.

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100B1B0083}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<RADIANCE-CORE:ENVIRONMENT-NOT-SET {10038B5253}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<RADIANCE-CORE:ENVIRONMENT-NOT-SET {10038B5253}>)
2: (INVOKE-DEBUGGER #<RADIANCE-CORE:ENVIRONMENT-NOT-SET {10038B5253}>)
3: (ERROR RADIANCE-CORE:ENVIRONMENT-NOT-SET)
4: (RADIANCE-CORE:CHECK-ENVIRONMENT)
5: (RADIANCE-CORE:FIND-IMPLEMENTATION :BAN T)
6: (ASDF/PLAN:MAP-DIRECT-DEPENDENCIES #<ASDF/LISP-ACTION:PREPARE-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test"> #<FUNCTION (LAMBDA (ASDF/PLAN::O ASDF/PLAN::C) :IN ASDF/PLAN:TRAVERSE-ACTION) {10038B4F3B}>)
7: ((LAMBDA NIL :IN ASDF/PLAN:TRAVERSE-ACTION))
8: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
9: (ASDF/PLAN:TRAVERSE-ACTION #<ASDF/PLAN:SEQUENTIAL-PLAN {10038B3F13}> #<ASDF/LISP-ACTION:PREPARE-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test"> T)
10: (ASDF/PLAN:MAP-DIRECT-DEPENDENCIES #<ASDF/LISP-ACTION:PREPARE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "radiance-test" "package"> #<FUNCTION (LAMBDA (ASDF/PLAN::O ASDF/PLAN::C) :IN ASDF/PLAN:TRAVERSE-ACTION) {10038B4A0B}>)
11: ((LAMBDA NIL :IN ASDF/PLAN:TRAVERSE-ACTION))
12: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
13: (ASDF/PLAN:TRAVERSE-ACTION #<ASDF/PLAN:SEQUENTIAL-PLAN {10038B3F13}> #<ASDF/LISP-ACTION:PREPARE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "radiance-test" "package"> T)
14: (ASDF/PLAN:MAP-DIRECT-DEPENDENCIES #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "radiance-test" "package"> #<FUNCTION (LAMBDA (ASDF/PLAN::O ASDF/PLAN::C) :IN ASDF/PLAN:TRAVERSE-ACTION) {10038B47CB}>)
15: ((LAMBDA NIL :IN ASDF/PLAN:TRAVERSE-ACTION))
16: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
17: (ASDF/PLAN:TRAVERSE-ACTION #<ASDF/PLAN:SEQUENTIAL-PLAN {10038B3F13}> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "radiance-test" "package"> T)
18: (ASDF/PLAN:MAP-DIRECT-DEPENDENCIES #<ASDF/LISP-ACTION:LOAD-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test"> #<FUNCTION (LAMBDA (ASDF/PLAN::O ASDF/PLAN::C) :IN ASDF/PLAN:TRAVERSE-ACTION) {10038B43CB}>)
19: ((LAMBDA NIL :IN ASDF/PLAN:TRAVERSE-ACTION))
20: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
21: (ASDF/PLAN:TRAVERSE-ACTION #<ASDF/PLAN:SEQUENTIAL-PLAN {10038B3F13}> #<ASDF/LISP-ACTION:LOAD-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test"> T)
22: ((LAMBDA NIL :IN ASDF/PLAN:MAKE-PLAN))
23: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
24: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test">)
25: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
26: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<RADIANCE-CORE:VIRTUAL-MODULE "radiance-test">) [fast-method]
27: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP "radiance-test")
28: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
29: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "radiance-test") [fast-method]
30: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10032B9B6B}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
31: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
32: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10032B6E1B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
33: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "radiance-test") [fast-method]
34: (ASDF/OPERATE:LOAD-SYSTEM "radiance-test")
35: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:LOAD-SYSTEM "radiance-test") #<NULL-LEXENV>)
36: (EVAL (ASDF/OPERATE:LOAD-SYSTEM "radiance-test"))
37: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(require :asdf)") (:EVAL . #<(SIMPLE-ARRAY CHARACTER (258)) (asdf:initialize-source-registry (list :source-registry (list :tree (uiop:ensure-pathname "/gnu/store/9gvsa004n0pvdbjpdnz4yg89hk12xr6c-sbcl-radiance-2.1.2-2.a723783/share/common-lisp/sbcl/radiance" :t... {100B42EA2F}>) (:EVAL . "(asdf:load-system \"radiance\")") (:EVAL . "(asdf:load-system \"radiance-test\")") (:QUIT)))
38: (SB-IMPL::TOPLEVEL-INIT)
39: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
40: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
41: (SB-IMPL::%START-LISP)
Shinmera commented 1 year ago

Set an environment first like it tells you to. It's explained in the documentation.

Hellseher commented 1 year ago

Hi,

When I tried to follow it ended up with empty documentation.

function  (SETF ENVIRONMENT)  ENVIRONMENT 
No documentation provided.

By environment do you mean environment variables or I need to load the system and follow interactive setup? If it's something other than env vars, tests require radiance full configuration first in that case. I wonder why tests do not use default enviroment as far as I get this line right https://github.com/Shirakumo/radiance/blob/a7237831970edfd330dddd5b347d3d1277853bf0/environment.lisp#L79

Thanks.

Shinmera commented 1 year ago

Section 1.11: https://shirakumo.github.io/radiance/#1.11_environment And https://shirakumo.github.io/radiance/#FUNCTION%20RADIANCE-CORE:ENVIRONMENT

Hellseher commented 7 months ago

Hi,

I'm sorry to re-open the issue. Is there any way to run provided test programatically without manual set-up of the Radiance? I still trying to resolve tests in Guix CI which has not any manual interactions.

Thanks, Oleg

Shinmera commented 7 months ago
sbcl --eval '(ql:quickload :radiance)' --eval '(setf (radiance:environment) "default")' --eval '(asdf:test-system :radiance)'
Hellseher commented 7 months ago

Hi, Thank you for your responce. Unfortunatly tests require radiance-contrib but radiance-contrib requires radiance

Attempt to build radiance-contrib without radiance

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
While evaluating the form starting at line 8, column 0
  of #P"/gnu/store/afzkma9x07gyw9xzgkm4dsqv52q25mjn-sbcl-radiance-contribs-1.0.0-1.710b3e1/share/common-lisp/sbcl/radiance-contribs/r-clip/r-clip.asd":
Unhandled MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD tid=28 "main thread" RUNNING {10013A8003}>: Component "radiance" not found, required by NIL

Attempt to test radiance without radiance-contrib:

WARNING: Configuration for "default" not found-- creating from defaults.
Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD tid=32 "main thread" RUNNING
                                                             {100AF80073}>:
  Component "r-simple-ban" not found

Backtrace for: #<SB-THREAD:THREAD tid=32 "main thread" RUNNING {100AF80073}>

I have no quicklisp option, so here is my infokation steps:

sbcl --noinform \
--non-interactive \
--no-userinit \ 
--eval "(require :asdf)" \
--eval "(pushnew (uiop:getcwd) asdf:*central-registry*)" \
--eval "(pushnew (merge-pathnames "test/" (uiop:getcwd)) asdf:*central-registry*)" \
--eval "(asdf:load-system :radiance)" \
--eval "(setf (radiance:environment) "default")" \
--eval "(asdf:load-system :radiance-test)" \
--eval "(asdf:load-system :radiance-core)" \
--eval "(setf (radiance-core:environment) "default")" \
--eval "(asdf:test-system :radiance)" \
--eval "(quit)"