jetrockets / shrine.cr

File Attachment toolkit for Crystal applications. Heavily inspired by Shrine for Ruby.
https://jetrockets.github.io/shrine.cr/
MIT License
74 stars 16 forks source link

Invalid memory access caused by Spectator, should it be removed? #29

Open wout opened 1 year ago

wout commented 1 year ago

I'm preparing a PR on this shard to fix a few hanging issues, but I'm running into the following error after running crystal spec:

Invalid memory access (signal 11) at address 0x0
[0x55c25cc05796] *Exception::CallStack::print_backtrace:Nil +118 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cbe3556] ~procProc(Int32, Pointer(LibC::SiginfoT), Pointer(Void), Nil) +310 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x7f358d842520] ?? +139867984241952 in /lib/x86_64-linux-gnu/libc.so.6
[0x55c25cc20f2d] *String#==<String>:Bool +45 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ce3ccfc] *Spectator::Matchers::EqualityMatcher(String) +76 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ce3cb8d] *Spectator::Matchers::EqualityMatcher(String) +45 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ceb2e3d] *Spectator::Expectation::Target(String | Nil) +45 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ceb2e07] *Spectator::Expectation::Target(String | Nil) +39 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ce2448b] *SpectatorTestContext::Group__temp_552::Group__temp_596::Group__temp_600#__temp_605:Nil +219 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cbefb9c] ~procProc(Spectator::Example, Nil) +44 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdc54c5] *Spectator::Example#run_internal:Nil +613 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cbe7429] ~procProc(Nil) +9 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdd3a31] *Spectator::Example::Procsy#call:Nil +49 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdc4bff] *Spectator::Example#run:Spectator::Result+ +2591 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdcf138] *Spectator::Runner#run_example<Spectator::Example>:Spectator::Result+ +72 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdcf037] *Spectator::Runner#run_examples:Nil +87 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdced05] *Spectator::Runner#run:Bool +149 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cdcb20a] *Spectator::Spec#run:Bool +298 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cd7ef1b] *Spectator +75 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cbe3cf6] ~procProc(Int32, (Exception | Nil), Nil) +38 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25ccdbdb9] *Crystal::AtExitHandlers::run<Int32, (Exception+ | Nil)>:Int32 +153 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cebd813] *Crystal::exit<Int32, (Exception+ | Nil)>:Int32 +35 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cebd789] *Crystal::main<Int32, Pointer(Pointer(UInt8))>:Int32 +105 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x55c25cbd7a36] main +6 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x7f358d829d90] ?? +139867984141712 in /lib/x86_64-linux-gnu/libc.so.6
[0x7f358d829e40] __libc_start_main +128 in /lib/x86_64-linux-gnu/libc.so.6
[0x55c25cbbff75] _start +37 in /home/wout/.cache/crystal/crystal-run-spec.tmp
[0x0] ???

I've already removed the cache, but that doesn't help. Since the Spectator shard also causes other issues (#14), I wonder if it should be removed for maintainability. Other than the RSpec-like feeling Spectator brings, are there any benefits over Crystal's native testing framework? I wouldn't mind doing it.

igor-alexandrov commented 1 year ago

@wout thanks for this Issue. Seems like removing Spectator is a correct way to go...

wout commented 1 year ago

@wout thanks for this Issue. Seems like removing Spectator is a correct way to go...

Great, I'll work on that.

igor-alexandrov commented 1 year ago

Thanks a lot! I can help if anything needed.

wout commented 1 year ago

Great! I may have some questions here and there, I'll let you know.