Describe the bug
The following two JSON related test cases fail when running under Oracle Database 21.3:
- utplsql.test_user.expectations.test_expectations_json.fail_on_diff_data
- UT3$USER#:utplsql.test_user.expectations.test_expectations_json.long_json_diff
All other tests complete successful as under 19c.
Provide version info
21.0.0.0.0
21.0.0
PL/SQL procedure successfully completed.
UT_VERSION
------------------------------------------------------------
v3.1.11.3475-develop
BANNER BANNER_FULL BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production 0
Version 21.3.0.0.0
PARAMETER VALUE
------------------------------ ----------------------------------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD.MM.YYYY
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD.MM.YYYY HH24:MI:SSXFF
PARAMETER VALUE
------------------------------ ----------------------------------------------------------------
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD.MM.YYYY HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
17 rows selected.
PORT_STRING
------------------------------------------------------------
x86_64/Linux 2.4.xx
Information about client software
SQL Developer 21.2.1. But this does not really matter. It's reproducible with any client.
To Reproduce
Steps to reproduce the behavior:
- Clone the current develop branch
- Install the develop version, I've done the following:
cd /.../github/utPLSQL
git fetch --all
git pull
chmod +x development/*.sh
chmod +x test/*.sh
chmod +x .travis/*.sh
echo "export CONNECTION_STR=127.0.0.1:1522/opdb1.docker" >> development/env.sh
. development/env.sh
development/cleanup.sh
development/refresh_ut3.sh
development/refresh_sources.sh
development/install.sh
test/install_and_run_tests.sh
- You then see two failed tests as a result of running
install_and_run_tests.sh.
You can also run the following block as user ut3_tester_helper in a SQL client:
set serveroutput on size unlimited
begin
ut.run(
ut_varchar2_list(
'UT3$USER#:utplsql.test_user.expectations.test_expectations_json.fail_on_diff_data',
'UT3$USER#:utplsql.test_user.expectations.test_expectations_json.long_json_diff'
)
);
end;
/
The result is:
utplsql
test_user
expectations
json expectations
Long complex json differences [.288 sec] (FAILED - 1)
utplsql
test_user
expectations
json expectations
Gives failure for different data [.051 sec] (FAILED - 2)
Failures:
1) long_json_diff
Actual: (varchar2)
'Actual: json was expected to equal: json
Diff: 133 differences found, showing first 20
1 missing properties, 132 unequal values
Extra property: object on path: $[5]
Actual value: "5ce6ec46cb9977b050f15d97" was expected to be: "5ce6ec6660565269b16cf836" on path: $[0]."_id"
Actual value: "5ce6ec469ba57bef5c421021" was expected to be: "5ce6ec66383ddbf3c400e3ed" on path: $[1]."_id"
Actual value: "5ce6ec4632328a654d592cb6" was expected to be: "5ce6ec6600fb7aaee2d1243e" on path: $[3]."_id"
Actual value: "5ce6ec464e6f8751e75ed29f" was expected to be: "5ce6ec660a8b5f95ed543305" on path: $[2]."_id"
Actual value: "5ce6ec46d9dbfbf9b184cee7" was expected to be: "5ce6ec660585cbb589b34fc8" on path: $[4]."_id"
Actual value: "59be5b73-fffe-4a4f-acea-65c5abbdb53c" was expected to be: "2e778803-50d3-411f-b34d-47d0f19d03f7" on path: $[1]."guid"
Actual value: "9dece65b-6b48-4960-880b-7795ff63c81c" was expected to be: "18547241-6fd0-466d-9f79-21aeb0485294" on path: $[4]."guid"
Actual value: "42e07b71-b769-4078-b226-f79048b75bd2" was expected to be: "bb0eaa88-f7fd-4b72-8538-8c0b4595bcec" on path: $[2]."guid"
Actual value: "6b9124a9-fbde-4c60-8dac-e296f5daa3c4" was expected to be: "4a4363b5-9d65-4b22-9b58-a5c8c1c5bd5d" on path: $[3]."guid"
Actual value: "1acb2b6b-15b5-4747-a62f-db477e18df61" was expected to be: "c222eda5-d925-4163-89e3-4b0e50d5e297" on path: $[0]."guid"
Actual value: FALSE was expected to be: TRUE on path: $[2]."isActive"
Actual value: TRUE was expected to be: FALSE on path: $[3]."isActive"
Actual value: TRUE was expected to be: FALSE on path: $[1]."isActive"
Actual value: "$3,895.35" was expected to be: "$2,299.28" on path: $[1]."balance"
Actual value: "$1,443.80" was expected to be: "$3,626.25" on path: $[0]."balance"
Actual value: "$3,366.81" was expected to be: "$3,085.28" on path: $[2]."balance"
Actual value: "$2,927.54" was expected to be: "$3,853.86" on path: $[4]."balance"
Actual value: "$2,374.96" was expected to be: "$3,152.70" on path: $[3]."balance"
Actual value: 23 was expected to be: 36 on path: $[2]."age"'
was expected to be like:
'%Diff: 133 differences found, showing first 20
%132 unequal values, 1 missing properties
%Extra property: object on path: $[5]
%Actual value: "5ce6ec46cb9977b050f15d97" was expected to be: "5ce6ec6660565269b16cf836" on path: $[0]."_id"
%Actual value: "5ce6ec469ba57bef5c421021" was expected to be: "5ce6ec66383ddbf3c400e3ed" on path: $[1]."_id"
%Actual value: "5ce6ec4632328a654d592cb6" was expected to be: "5ce6ec6600fb7aaee2d1243e" on path: $[3]."_id"
%Actual value: "5ce6ec464e6f8751e75ed29f" was expected to be: "5ce6ec660a8b5f95ed543305" on path: $[2]."_id"
%Actual value: "5ce6ec46d9dbfbf9b184cee7" was expected to be: "5ce6ec660585cbb589b34fc8" on path: $[4]."_id"
%Actual value: "59be5b73-fffe-4a4f-acea-65c5abbdb53c" was expected to be: "2e778803-50d3-411f-b34d-47d0f19d03f7" on path: $[1]."guid"
%Actual value: "9dece65b-6b48-4960-880b-7795ff63c81c" was expected to be: "18547241-6fd0-466d-9f79-21aeb0485294" on path: $[4]."guid"
%Actual value: "42e07b71-b769-4078-b226-f79048b75bd2" was expected to be: "bb0eaa88-f7fd-4b72-8538-8c0b4595bcec" on path: $[2]."guid"
%Actual value: "6b9124a9-fbde-4c60-8dac-e296f5daa3c4" was expected to be: "4a4363b5-9d65-4b22-9b58-a5c8c1c5bd5d" on path: $[3]."guid"
%Actual value: "1acb2b6b-15b5-4747-a62f-db477e18df61" was expected to be: "c222eda5-d925-4163-89e3-4b0e50d5e297" on path: $[0]."guid"
%Actual value: FALSE was expected to be: TRUE on path: $[2]."isActive"
%Actual value: TRUE was expected to be: FALSE on path: $[3]."isActive"
%Actual value: TRUE was expected to be: FALSE on path: $[1]."isActive"
%Actual value: "$3,895.35" was expected to be: "$2,299.28" on path: $[1]."balance"
%Actual value: "$1,443.80" was expected to be: "$3,626.25" on path: $[0]."balance"
%Actual value: "$3,366.81" was expected to be: "$3,085.28" on path: $[2]."balance"
%Actual value: "$2,927.54" was expected to be: "$3,853.86" on path: $[4]."balance"
%Actual value: "$2,374.96" was expected to be: "$3,152.70" on path: $[3]."balance"
%Actual value: 23 was expected to be: 36 on path: $[2]."age"%'
at "UT3$USER#.TEST_EXPECTATIONS_JSON.LONG_JSON_DIFF", line 1584 ut.expect(l_actual_message).to_be_like(l_expected_message);
2) fail_on_diff_data
Actual: (varchar2)
'Actual: json was expected to equal: json
Diff: 20 differences found
13 missing properties, 3 incorrect types, 4 unequal values
Missing property: "Alexander Skarsg?rd" on path: $
Extra property: "Alexander Skarsgard" on path: $
Missing property: "Alice Farmer" on path: $
Extra property: "Clarke Peters" on path: $
Extra property: "one" on path: $."Amy Ryan"
Missing property: "The Sopranos" on path: $."Annie Fitzgerald"[2]
Extra property: "two" on path: $."Amy Ryan"
Missing property: "Oz" on path: $."Annie Fitzgerald"[3]
Missing property: "otherint" on path: $."Aidan Gillen"
Extra property: "object1" on path: $."Aidan Gillen"."object"
Extra property: "object2" on path: $."Aidan Gillen"."object"
Extra property: "object3" on path: $."Aidan Gillen"."object"
Extra property: "object4" on path: $."Aidan Gillen"."object"
Actual type: 'array' was expected to be: 'object' on path: $."Amy Ryan"
Actual type: 'string' was expected to be: 'number' on path: $."Aidan Gillen"."int"
Actual type: 'string' was expected to be: 'boolean' on path: $."Aidan Gillen"."aboolean"
Actual value: "True Blood" was expected to be: "Big Love" on path: $."Annie Fitzgerald"[0]
Actual value: "Big Love" was expected to be: "True Blood" on path: $."Annie Fitzgerald"[1]
Actual value: FALSE was expected to be: TRUE on path: $."Aidan Gillen"."boolean"
Actual value: "Game of Thrones" was expected to be: "Game of Thron\"es" on path: $."Aidan Gillen"."array"[0]'
was expected to be like:
'%Diff: 20 differences found
%3 incorrect types, 4 unequal values, 13 missing properties
%Missing property: "Alexander Skarsg?rd" on path: $
%Extra property: "Alexander Skarsgard" on path: $
%Missing property: "Alice Farmer" on path: $
%Extra property: "Clarke Peters" on path: $
%Extra property: "one" on path: $."Amy Ryan"
%Missing property: "The Sopranos" on path: $."Annie Fitzgerald"[2]
%Extra property: "two" on path: $."Amy Ryan"
%Missing property: "Oz" on path: $."Annie Fitzgerald"[3]
%Missing property: "otherint" on path: $."Aidan Gillen"
%Extra property: "object1" on path: $."Aidan Gillen"."object"
%Extra property: "object2" on path: $."Aidan Gillen"."object"
%Extra property: "object3" on path: $."Aidan Gillen"."object"
%Extra property: "object4" on path: $."Aidan Gillen"."object"
%Actual type: 'array' was expected to be: 'object' on path: $."Amy Ryan"
%Actual type: 'string' was expected to be: 'number' on path: $."Aidan Gillen"."int"
%Actual type: 'string' was expected to be: 'boolean' on path: $."Aidan Gillen"."aboolean"
%Actual value: "True Blood" was expected to be: "Big Love" on path: $."Annie Fitzgerald"[0]
%Actual value: "Big Love" was expected to be: "True Blood" on path: $."Annie Fitzgerald"[1]
%Actual value: FALSE was expected to be: TRUE on path: $."Aidan Gillen"."boolean"
%Actual value: "Game of Thrones" was expected to be: "Game of Thron\"es" on path: $."Aidan Gillen"."array"[0]%'
at "UT3$USER#.TEST_EXPECTATIONS_JSON.FAIL_ON_DIFF_DATA", line 95 ut.expect(l_actual_message).to_be_like(l_expected_message);
Finished in .376903 seconds
2 tests, 2 failed, 0 errored, 0 disabled, 0 warning(s)
PL/SQL procedure successfully completed.
Expected behavior
All enable tests complete successful under Oracle Database 21.3.
Describe the bug
The following two JSON related test cases fail when running under Oracle Database 21.3:
All other tests complete successful as under 19c.
Provide version info
Information about client software
SQL Developer 21.2.1. But this does not really matter. It's reproducible with any client.
To Reproduce
Steps to reproduce the behavior:
install_and_run_tests.sh.You can also run the following block as user
ut3_tester_helperin a SQL client:The result is:
Expected behavior
All enable tests complete successful under Oracle Database 21.3.