ninja: no work to do. *** Running test-ascii-control ===== CASE: -c echo $'\x02' | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12812==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x555714e79365 bp 0x7ffed91da640 sp 0x7ffed91da620 T0) ==12812==The signal is caused by a READ memory access. ==12812==Hint: address points to the zero page. #0 0x555714e79364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x555714d865a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x555714bea246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x555714bd2703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x555714d62a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x555714b08845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x555714b08d91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x555714d6eaeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7ff6da22b09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x555714ae1fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12812==ABORTING ===== CASE: -c echo $'"foo \x01 "' | json read pp test_ (_reply) ===== echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: json read: JSON strings can't have unescaped ASCII control chars (line 1, offset 0-6: '"foo \x01 "\n') echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: errexit PID 12814: command.Simple failed with status 1 echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: errexit PID 12814: command.Pipeline failed with status 1 ===== CASE: -c var invalid = b'\y01' echo $["u'foo" ++ invalid ++ "'"] | json8 read pp test_ (_reply) ===== echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~ [ -c flag ]:2: json8 read: J8 strings can't have unescaped ASCII control chars (line 1, offset 0-6: "u'foo\x01'\n") echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12819: command.Simple failed with status 1 echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12819: command.Pipeline failed with status 1 OK test-ascii-control *** Running test-cpython data_lang/j8-errors.sh: line 149: python3: command not found data_lang/j8-errors.sh: line 151: python3: command not found OK test-cpython *** Running test-encode ===== CASE: -c var d = {}; setvar d.k = d; json write (d) ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12833==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x5651ad0be365 bp 0x7ffd17636e10 sp 0x7ffd17636df0 T0) ==12833==The signal is caused by a READ memory access. ==12833==Hint: address points to the zero page. #0 0x5651ad0be364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x5651acfcb5a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x5651ace2f246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x5651ace17703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x5651acfa7a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x5651acd4d845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x5651acd4dd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x5651acfb3aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7fbb850d609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x5651acd26fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12833==ABORTING ===== CASE: -c var L = []; call L->append(L); json write (L) ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12834==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x5574935ec365 bp 0x7ffede492b20 sp 0x7ffede492b00 T0) ==12834==The signal is caused by a READ memory access. ==12834==Hint: address points to the zero page. #0 0x5574935ec364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x5574934f95a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x55749335d246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x557493345703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x5574934d5a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x55749327b845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x55749327bd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x5574934e1aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f90c613209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x557493254fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12834==ABORTING ===== CASE: -c var L = []; call L->append(/d+/); j8 write (L) ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12835==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x562e2298d365 bp 0x7ffe23191c60 sp 0x7ffe23191c40 T0) ==12835==The signal is caused by a READ memory access. ==12835==Hint: address points to the zero page. #0 0x562e2298d364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x562e2289a5a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x562e226fe246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x562e226e6703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x562e22876a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x562e2261c845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x562e2261cd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x562e22882aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7efcd3ab609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x562e225f5fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12835==ABORTING OK test-encode *** Running test-j8-lines ===== CASE: -c write @(echo ' "json\tstring" '; echo; echo " b'j8' "; echo ' unquoted ';) ===== json string j8 unquoted ===== CASE: -c var lines = @( echo '"unbalanced' ) pp test_ (lines) ===== var lines = @( ^~ [ -c flag ]:1: fatal: Unexpected EOF while lexing J8 string (line 1, offset 0-11: '"unbalanced') ===== CASE: -c write @(echo '"unbalanced') ===== write @(echo '"unbalanced') ^~ [ -c flag ]:1: fatal: Unexpected EOF while lexing J8 string (line 1, offset 0-11: '"unbalanced') ===== CASE: -c write @(echo '"json" "nope"') ===== write @(echo '"json" "nope"') ^~ [ -c flag ]:1: fatal: Unexpected text after J8 Line (Id.J8_String) (line 1, offset 7-13: 'on" "nope"') ===== CASE: -c write @(echo '"json" unquoted') ===== write @(echo '"json" unquoted') ^~ [ -c flag ]:1: fatal: Unexpected text after J8 Line (Id.Lit_Chars) (line 1, offset 7-15: 'on" unquoted') ===== CASE: -c write @(echo '"hello \z"') ===== write @(echo '"hello \z"') ^~ [ -c flag ]:1: fatal: Bad backslash escape in J8 string (line 1, offset 0-8: '"hello \\z"') ===== CASE: -c write @(echo $'foo \xff-bar spam') ===== write @(echo $'foo \xff-bar spam') ^~ [ -c flag ]:1: fatal: Invalid UTF-8 in J8 string literal (line 1, offset 4-9: 'foo \xff-bar spa') ===== CASE: -c write @(echo $'foo \x01-bar spam') ===== write @(echo $'foo \x01-bar spam') ^~ [ -c flag ]:1: fatal: J8 Lines can't have unescaped ASCII control chars (line 1, offset 4-5: 'foo \x01-bar') OK test-j8-lines *** Running test-line-numbers ===== CASE: -c echo ' { "a": 99, "foo\z": 42 } ' | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12883==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x557221dbc365 bp 0x7ffc3a03a490 sp 0x7ffc3a03a470 T0) ==12883==The signal is caused by a READ memory access. ==12883==Hint: address points to the zero page. #0 0x557221dbc364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x557221cc95a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x557221b2d246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x557221b15703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x557221ca5a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x557221a4b845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x557221a4bd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x557221cb1aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7fb51853909a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x557221a24fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12883==ABORTING ===== CASE: -c echo ' { "foo": 42 oops } ' | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12885==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x556f58e97365 bp 0x7ffeba051720 sp 0x7ffeba051700 T0) ==12885==The signal is caused by a READ memory access. ==12885==Hint: address points to the zero page. #0 0x556f58e97364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x556f58da45a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x556f58c08246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x556f58bf0703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x556f58d80a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x556f58b26845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x556f58b26d91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x556f58d8caeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7fd46b4c109a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x556f58afffc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12885==ABORTING ===== CASE: -c proc p { echo unquoted echo echo echo ' "hi" oops' # line 4 error } write -- @(p) ===== write -- @(p) ^~ [ -c flag ]:8: fatal: Unexpected text after J8 Line (Id.Lit_Chars) (line 4, offset 17-21: 'hi" oops') OK test-line-numbers *** Running test-parse-errors ===== CASE: -c echo "" | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12894==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x555746bae365 bp 0x7fffd52b6c90 sp 0x7fffd52b6c70 T0) ==12894==The signal is caused by a READ memory access. ==12894==Hint: address points to the zero page. #0 0x555746bae364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x555746abb5a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x55574691f246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x555746907703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x555746a97a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x55574683d845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x55574683dd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x555746aa3aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f8d20f9f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x555746816fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12894==ABORTING ===== CASE: -c echo { | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12895==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x564234cf1365 bp 0x7ffe1813d040 sp 0x7ffe1813d020 T0) ==12895==The signal is caused by a READ memory access. ==12895==Hint: address points to the zero page. #0 0x564234cf1364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x564234bfe5a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x564234a62246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x564234a4a703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x564234bdaa6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x564234980845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x564234980d91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x564234be6aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f4bc3ec009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x564234959fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12895==ABORTING ===== CASE: -c echo + | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12896==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x5632822b8365 bp 0x7ffcad5bae20 sp 0x7ffcad5bae00 T0) ==12896==The signal is caused by a READ memory access. ==12896==Hint: address points to the zero page. #0 0x5632822b8364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x5632821c55a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x563282029246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x563282011703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x5632821a1a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x563281f47845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x563281f47d91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x5632821adaeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f033f3d509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x563281f20fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12896==ABORTING ===== CASE: -c echo "(" | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12897==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x55a63ecac365 bp 0x7ffffd0808d0 sp 0x7ffffd0808b0 T0) ==12897==The signal is caused by a READ memory access. ==12897==Hint: address points to the zero page. #0 0x55a63ecac364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x55a63ebb95a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x55a63ea1d246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x55a63ea05703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x55a63eb95a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x55a63e93b845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x55a63e93bd91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x55a63eba1aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f117882509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x55a63e914fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12897==ABORTING ===== CASE: -c echo '{}[ ' | json read ===== echo '{}[ ' | json read ^~~~ [ -c flag ]:1: json read: Got 3 bytes of unexpected trailing input (line 1, offset 2-3: '{}[ \n') echo '{}[ ' | json read ^~~~ [ -c flag ]:1: errexit PID 12899: command.Simple failed with status 1 echo '{}[ ' | json read ^~~~ [ -c flag ]:1: errexit PID 12899: command.Pipeline failed with status 1 OK test-parse-errors *** Running test-str-bad-escape ===== CASE: -c echo '"hi \z bye"' | json read ===== echo '"hi \z bye"' | json read ^~~~ [ -c flag ]:1: json read: Bad backslash escape in JSON string (line 1, offset 0-5: '"hi \\z by') echo '"hi \z bye"' | json read ^~~~ [ -c flag ]:1: errexit PID 12907: command.Simple failed with status 1 echo '"hi \z bye"' | json read ^~~~ [ -c flag ]:1: errexit PID 12907: command.Pipeline failed with status 1 ===== CASE: -c var invalid = r'\z' echo $["u'hi" ++ invalid ++ "bye'"] | json8 read ===== echo $["u'hi" ++ invalid ++ "bye'"] | json8 read ^~~~ [ -c flag ]:2: json8 read: Bad backslash escape in J8 string (line 1, offset 0-5: "u'hi\\zbye") echo $["u'hi" ++ invalid ++ "bye'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12912: command.Simple failed with status 1 echo $["u'hi" ++ invalid ++ "bye'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12912: command.Pipeline failed with status 1 OK test-str-bad-escape *** Running test-str-invalid-utf8 ===== CASE: -c # part of mu = \u03bc echo $' "\xce" ' | json read ===== echo $' "\xce" ' | json read ^~~~ [ -c flag ]:2: json read: Invalid UTF-8 in JSON string literal (line 1, offset 1-3: ' "\xce" \n') echo $' "\xce" ' | json read ^~~~ [ -c flag ]:2: errexit PID 12920: command.Simple failed with status 1 echo $' "\xce" ' | json read ^~~~ [ -c flag ]:2: errexit PID 12920: command.Pipeline failed with status 1 ===== CASE: -c var invalid = b'\yce' echo $["u'" ++ invalid ++ "'"] | json8 read ===== echo $["u'" ++ invalid ++ "'"] | json8 read ^~~~ [ -c flag ]:2: json8 read: Invalid UTF-8 in J8 string literal (line 1, offset 0-3: "u'\xce'\n") echo $["u'" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12925: command.Simple failed with status 1 echo $["u'" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 12925: command.Pipeline failed with status 1 OK test-str-invalid-utf8 *** Running test-str-unclosed-quote ===== CASE: -c echo -n '["' | json read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12933==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x5607840ab365 bp 0x7ffd95b44250 sp 0x7ffd95b44230 T0) ==12933==The signal is caused by a READ memory access. ==12933==Hint: address points to the zero page. #0 0x5607840ab364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x560783fb85a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x560783e1c246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x560783e04703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x560783f94a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x560783d3a845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x560783d3ad91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x560783fa0aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f56d24cf09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x560783d13fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12933==ABORTING ===== CASE: -c echo -n "[b'" | json8 read ===== AddressSanitizer:DEADLYSIGNAL ================================================================= ==12935==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x55fe3f53f365 bp 0x7ffeb90d64b0 sp 0x7ffeb90d6490 T0) ==12935==The signal is caused by a READ memory access. ==12935==Hint: address points to the zero page. #0 0x55fe3f53f364 in Dict::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367 #1 0x55fe3f44c5a4 in Dict::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x4445a4) #2 0x55fe3f2b0246 in state::Mem::GetValue(BigStr*, runtime_asdl::scope_e) _gen/bin/oils_for_unix.mycpp.cc:28383 #3 0x55fe3f298703 in state::MutableOpts::Init() _gen/bin/oils_for_unix.mycpp.cc:26688 #4 0x55fe3f428a6b in shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57327 #5 0x55fe3f1ce845 in oils_for_unix::AppBundleMain(List*) _gen/bin/oils_for_unix.mycpp.cc:12497 #6 0x55fe3f1ced91 in oils_for_unix::main(List*) _gen/bin/oils_for_unix.mycpp.cc:12529 #7 0x55fe3f434aeb in main _gen/bin/oils_for_unix.mycpp.cc:57866 #8 0x7f589179009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #9 0x55fe3f1a7fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict::find_kv_index(BigStr*) const ==12935==ABORTING OK test-str-unclosed-quote data_lang/j8-errors.sh: 9 tests passed.