@@ -305,8 +305,8 @@ TEST_CASE("toon_reader parse_header tests")
305305 1,Blue Lake Trail,7.5,320,ana,true
306306 2,Ridge Overlook,9.2,540,luis,false
307307 3,Wildflower Loop,5.1,180,sam,true)" ;
308- std::error_code ec ;
309- toon::read_lines (raw, options, lines, blank_lines, ec );
308+ auto r = toon::read_lines (raw, options, lines, blank_lines) ;
309+ REQUIRE (r );
310310
311311 REQUIRE (4 == lines.size ());
312312
@@ -344,7 +344,6 @@ TEST_CASE("toon_reader tests")
344344 auto expected = jsoncons::ojson::parse (R"( [" foo", "baz" ,"bar ",1,true,false,null])" );
345345
346346 std::string data = R"( [7]: " foo", baz ,"bar ",1,true,false,null)" ;
347- std::error_code ec;
348347
349348 jsoncons::json_decoder<jsoncons::ojson> decoder;
350349 toon::toon_string_reader reader (data, decoder);
@@ -364,7 +363,6 @@ TEST_CASE("toon_reader tests")
364363 std::string data = R"( [2]{id,name,role}:
365364 1,Alice,admin
366365 2,Bob,user)" ;
367- std::error_code ec;
368366
369367 jsoncons::json_decoder<jsoncons::ojson> decoder;
370368 toon::toon_string_reader reader (data, decoder);
@@ -386,7 +384,6 @@ TEST_CASE("toon_reader tests")
386384 - 1
387385 - a: 1
388386 - text)" ;
389- std::error_code ec;
390387
391388 jsoncons::json_decoder<jsoncons::ojson> decoder;
392389 toon::toon_string_reader reader (data, decoder);
@@ -406,7 +403,6 @@ TEST_CASE("toon_reader tests")
406403 std::string data = R"( task: Our favorite hikes together
407404location: Boulder
408405season: spring_2025)" ;
409- std::error_code ec;
410406
411407 jsoncons::json_decoder<jsoncons::ojson> decoder;
412408 toon::toon_string_reader reader (data, decoder);
@@ -479,7 +475,6 @@ season: spring_2025)";
479475 THING-C,3,15
480476 total: 45
481477 status: delivered)" ;
482- std::error_code ec;
483478
484479 jsoncons::json_decoder<jsoncons::ojson> decoder;
485480 toon::toon_string_reader reader (data, decoder);
@@ -497,7 +492,6 @@ season: spring_2025)";
497492 - first
498493 - second
499494 - )" ;
500- std::error_code ec;
501495
502496 jsoncons::json_decoder<jsoncons::ojson> decoder;
503497 toon::toon_string_reader reader (data, decoder);
@@ -518,7 +512,6 @@ season: spring_2025)";
518512 std::string data = R"( items[1]:
519513 - name: Ada
520514 data[0]:)" ;
521- std::error_code ec;
522515
523516 jsoncons::json_decoder<jsoncons::ojson> decoder;
524517 toon::toon_string_reader reader (data, decoder);
@@ -540,8 +533,6 @@ season: spring_2025)";
540533 - id: 2
541534 - status: draft)" ;
542535
543- std::error_code ec;
544-
545536 jsoncons::json_decoder<jsoncons::ojson> decoder;
546537 toon::toon_string_reader reader (data, decoder);
547538 reader.read ();
@@ -596,6 +587,34 @@ season: spring_2025)";
596587
597588TEST_CASE (" toon_reader errors" )
598589{
590+ SECTION (" indentation errors" )
591+ {
592+ std::string expected = " Indent spaces must be exact multiple of indent size at line 11" ;
593+
594+ std::string data = " a:\n b: 1" ;
595+ jsoncons::json_decoder<jsoncons::ojson> decoder;
596+ auto options = toon::toon_options{}.strict (true );
597+ toon::toon_string_reader reader (data, decoder, options);
598+
599+ auto result = reader.try_read ();
600+ REQUIRE_FALSE (result);
601+ CHECK (expected == result.error ().message ());
602+ // std::cout << result.error().message() << "\n";
603+ }
604+ SECTION (" blank lines" )
605+ {
606+ std::string expected = " Blank lines not allowed inside arrays at line 3" ;
607+
608+ std::string data = " items[3]:\n - a\n\n - b\n - c" ;
609+ jsoncons::json_decoder<jsoncons::ojson> decoder;
610+ auto options = toon::toon_options{}.strict (true );
611+ toon::toon_string_reader reader (data, decoder, options);
612+
613+ auto result = reader.try_read ();
614+ REQUIRE_FALSE (result);
615+ CHECK (expected == result.error ().message ());
616+ // std::cout << result.error().message() << "\n";
617+ }
599618 SECTION (" test1" )
600619 {
601620 std::string expected = " Inline array length mismatch at line 1" ;
@@ -605,7 +624,6 @@ TEST_CASE("toon_reader errors")
605624 auto options = toon::toon_options{}.strict (true );
606625 toon::toon_string_reader reader (data, decoder, options);
607626
608- std::error_code ec;
609627 auto result = reader.try_read ();
610628 REQUIRE_FALSE (result);
611629 CHECK (expected == result.error ().message ());
0 commit comments