run more unit tests (#6123)

This commit is contained in:
Lars Hvam 2023-03-06 17:49:12 +01:00 committed by GitHub
parent 06443c1908
commit af2b111c7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 121 additions and 22 deletions

View File

@ -26,10 +26,10 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@abaplint/cli": "^2.95.26", "@abaplint/cli": "^2.95.31",
"@abaplint/database-sqlite": "^2.5.4", "@abaplint/database-sqlite": "^2.5.4",
"@abaplint/runtime": "^2.5.8", "@abaplint/runtime": "^2.5.18",
"@abaplint/transpiler-cli": "^2.5.8", "@abaplint/transpiler-cli": "^2.5.18",
"abapmerge": "^0.15.0", "abapmerge": "^0.15.0",
"c8": "^7.13.0", "c8": "^7.13.0",
"eslint": "^8.35.0" "eslint": "^8.35.0"

View File

@ -6,6 +6,8 @@ CLASS ltcl_zlib DEFINITION FOR TESTING
PRIVATE SECTION. PRIVATE SECTION.
METHODS: METHODS:
fixed FOR TESTING RAISING cx_dynamic_check, fixed FOR TESTING RAISING cx_dynamic_check,
dynamic_simple FOR TESTING RAISING cx_dynamic_check zcx_abapgit_exception,
dynamic_another FOR TESTING RAISING cx_dynamic_check zcx_abapgit_exception,
dynamic FOR TESTING RAISING cx_dynamic_check zcx_abapgit_exception, dynamic FOR TESTING RAISING cx_dynamic_check zcx_abapgit_exception,
not_compressed FOR TESTING RAISING cx_dynamic_check. not_compressed FOR TESTING RAISING cx_dynamic_check.
@ -48,6 +50,49 @@ CLASS ltcl_zlib IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD dynamic_simple.
DATA: ls_data TYPE zcl_abapgit_zlib=>ty_decompress,
lv_compressed TYPE xstring,
lv_decoded TYPE xstring.
lv_compressed = |05804109000008C4AA184EC1C7E0C08FF5C70EA43E470B1A0B045D|.
lv_decoded = zcl_abapgit_convert=>string_to_xstring_utf8( |hello world| ).
ls_data = zcl_abapgit_zlib=>decompress( lv_compressed ).
cl_abap_unit_assert=>assert_not_initial( ls_data-raw ).
cl_abap_unit_assert=>assert_equals( act = ls_data-raw
exp = lv_decoded ).
ENDMETHOD.
METHOD dynamic_another.
DATA: ls_data TYPE zcl_abapgit_zlib=>ty_decompress,
lv_compressed TYPE xstring,
lv_decoded TYPE xstring.
lv_compressed = |25CCD10903310C04D156B680904AD284628963C1929D93D4FF| &&
|19F23DBCF9ACDB1CDCD90E5D73DD4816C4AD5E182BD24659F50D516EE6605CB0| &&
|C913D3F400183B7D29CA7C1FCC18546A47A10B53BE670FABFFDAE0728540267F| &&
|2DEF07|.
lv_decoded = zcl_abapgit_convert=>string_to_xstring_utf8(
|Lorem ipsum dolor sit amet, consectetur adipiscing elit, | &&
|sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.| ).
ls_data = zcl_abapgit_zlib=>decompress( lv_compressed ).
cl_abap_unit_assert=>assert_not_initial( ls_data-raw ).
cl_abap_unit_assert=>assert_equals( act = ls_data-raw
exp = lv_decoded ).
ENDMETHOD.
METHOD dynamic. METHOD dynamic.
DATA: ls_data TYPE zcl_abapgit_zlib=>ty_decompress, DATA: ls_data TYPE zcl_abapgit_zlib=>ty_decompress,

View File

@ -3,20 +3,26 @@ CLASS zcl_abapgit_zlib_huffman DEFINITION
CREATE PUBLIC . CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
TYPES: ty_lengths TYPE STANDARD TABLE OF i WITH DEFAULT KEY.
CONSTANTS: c_maxbits TYPE i VALUE 15. TYPES:
ty_lengths TYPE STANDARD TABLE OF i WITH DEFAULT KEY .
METHODS: CONSTANTS c_maxbits TYPE i VALUE 15 ##NO_TEXT.
constructor
IMPORTING it_lengths TYPE ty_lengths,
get_count
IMPORTING iv_index TYPE i
RETURNING VALUE(rv_value) TYPE i,
get_symbol
IMPORTING iv_index TYPE i
RETURNING VALUE(rv_value) TYPE i.
METHODS constructor
IMPORTING
!it_lengths TYPE ty_lengths .
METHODS get_count
IMPORTING
!iv_index TYPE i
RETURNING
VALUE(rv_value) TYPE i .
METHODS get_symbol
IMPORTING
!iv_index TYPE i
RETURNING
VALUE(rv_value) TYPE i .
PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
DATA: mt_count TYPE STANDARD TABLE OF i WITH DEFAULT KEY, DATA: mt_count TYPE STANDARD TABLE OF i WITH DEFAULT KEY,

View File

@ -0,0 +1,53 @@
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
METHODS create1 FOR TESTING RAISING cx_static_check.
METHODS create2 FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_test IMPLEMENTATION.
METHOD create1.
DATA lo_huffman TYPE REF TO zcl_abapgit_zlib_huffman.
DATA lt_lengths TYPE zcl_abapgit_zlib_huffman=>ty_lengths.
DO 10 TIMES.
APPEND 8 TO lt_lengths.
ENDDO.
CREATE OBJECT lo_huffman
EXPORTING
it_lengths = lt_lengths.
ENDMETHOD.
METHOD create2.
DATA lo_huffman TYPE REF TO zcl_abapgit_zlib_huffman.
DATA lt_lengths TYPE zcl_abapgit_zlib_huffman=>ty_lengths.
DO 144 TIMES.
APPEND 8 TO lt_lengths.
ENDDO.
DO 112 TIMES.
APPEND 9 TO lt_lengths.
ENDDO.
DO 24 TIMES.
APPEND 7 TO lt_lengths.
ENDDO.
DO 8 TIMES.
APPEND 8 TO lt_lengths.
ENDDO.
CREATE OBJECT lo_huffman
EXPORTING
it_lengths = lt_lengths.
ENDMETHOD.
ENDCLASS.

View File

@ -10,6 +10,7 @@
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>
<UNICODE>X</UNICODE> <UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS> </VSEOCLASS>
</asx:values> </asx:values>
</asx:abap> </asx:abap>

View File

@ -73,12 +73,11 @@
"keywords": ["return", "in", "class"], "keywords": ["return", "in", "class"],
"extraSetup": "../test/setup.mjs", "extraSetup": "../test/setup.mjs",
"skip": [ "skip": [
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_get_t100_longtext", "method": "test01", "note": "implement function module DOCU_GET, open-abap"}, {"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_get_t100_longtext", "method": "test01", "note": "uses MSAG from database"},
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_split_text", "method": "test_set_msg_z", "note": "some bug in fm TEXT_SPLIT in open-abaå"}, {"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_split_text", "method": "test_set_msg_z", "note": "some bug in fm TEXT_SPLIT in open-abap"},
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text6", "note": "uses MSAG from database"}, {"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text6", "note": "uses MSAG from database"},
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text7", "note": "uses MSAG from database"}, {"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text7", "note": "uses MSAG from database"},
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text8", "note": "uses MSAG from database"}, {"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_t100", "method": "text8", "note": "uses MSAG from database"},
{"object": "ZCX_ABAPGIT_EXCEPTION", "class": "ltcl_longtext", "method": "empty_longtext", "note": "implement function module DOCU_GET, open-abap"},
{"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "pretty1", "note": "open-abap does not add the byte order mark"}, {"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "pretty1", "note": "open-abap does not add the byte order mark"},
{"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "pretty2", "note": "open-abap does not add the byte order mark"}, {"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "pretty2", "note": "open-abap does not add the byte order mark"},
@ -87,17 +86,12 @@
{"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "malformatted", "note": "infinite loop"}, {"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "malformatted", "note": "infinite loop"},
{"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "dont_ignore_error", "note": "infinite loop"}, {"object": "ZCL_ABAPGIT_XML_PRETTY", "class": "ltcl_test", "method": "dont_ignore_error", "note": "infinite loop"},
{"object": "ZCL_ABAPGIT_ZLIB", "class": "ltcl_zlib", "method": "dynamic"},
{"object": "ZCL_ABAPGIT_ZLIB", "class": "ltcl_zlib", "method": "fixed"},
{"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_determine_max_threads", "method": "determine_max_threads", "note": "TypeError: abap.FunctionModules.FUNCTION_EXISTS is not a function"},
{"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "test", "note": "Void type: KO100"}, {"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "test", "note": "Void type: KO100"},
{"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "unsupported", "note": "Void type: KO100"}, {"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "unsupported", "note": "Void type: KO100"},
{"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "ignored", "note": "Void type: KO100"}, {"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_serialize", "method": "ignored", "note": "Void type: KO100"},
{"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_i18n", "method": "test", "note": "Void type: DD02V"}, {"object": "ZCL_ABAPGIT_SERIALIZE", "class": "ltcl_i18n", "method": "test", "note": "Void type: DD02V"},
{"object": "ZCL_ABAPGIT_FILE_STATUS", "class": "ltcl_calculate_status", "method": "complete", "note": "??"}, {"object": "ZCL_ABAPGIT_FILE_STATUS", "class": "ltcl_calculate_status", "method": "complete", "note": "??"},
{"object": "ZCL_ABAPGIT_FILE_STATUS", "class": "ltcl_calculate_status", "method": "only_local2", "note": "? sy-subrc = 4 vs 8 ?"},
{"object": "ZCL_ABAPGIT_PERSIST_PACKAGES", "class": "ltcl_packages", "method": "test_package", "note": "ZABAPGIT table not existing, error cx_sy_dynamic_osql_semantics"}, {"object": "ZCL_ABAPGIT_PERSIST_PACKAGES", "class": "ltcl_packages", "method": "test_package", "note": "ZABAPGIT table not existing, error cx_sy_dynamic_osql_semantics"},