From 2f0281b6edaa26a94350a402ee9da461d23fdc67 Mon Sep 17 00:00:00 2001
From: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Date: Thu, 13 Mar 2025 16:14:41 +0100
Subject: [PATCH] Fix unit tests for non-Unicode systems (#7151)
---
.../zcl_abapgit_convert.clas.testclasses.abap | 5 ++++
...l_abapgit_xml_output.clas.testclasses.abap | 7 ++++--
...l_abapgit_xml_pretty.clas.testclasses.abap | 23 +++++++++++++++----
3 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/utils/zcl_abapgit_convert.clas.testclasses.abap b/src/utils/zcl_abapgit_convert.clas.testclasses.abap
index 5067fc5c4..4207a01d0 100644
--- a/src/utils/zcl_abapgit_convert.clas.testclasses.abap
+++ b/src/utils/zcl_abapgit_convert.clas.testclasses.abap
@@ -284,6 +284,11 @@ CLASS ltcl_convert IMPLEMENTATION.
DATA lv_result TYPE string.
+ " Test does not work on non-Unicode but is not important for real-world anyway
+ IF cl_abap_char_utilities=>charsize = 1.
+ RETURN.
+ ENDIF.
+
" 0xF8-0xFF are not valid in UTF-8
TRY.
lv_result = zcl_abapgit_convert=>xstring_to_string_utf8( 'F8FF00' ).
diff --git a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
index 3c6b4ec44..98174d910 100644
--- a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
+++ b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
@@ -85,8 +85,11 @@ CLASS ltcl_xml_output IMPLEMENTATION.
lv_xstring = lo_conv_out_string->get_buffer( ).
- lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103
- CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE.
+ " Add BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103
+ CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE.
+ ENDIF.
lo_conv_in_string = cl_abap_conv_in_ce=>create(
encoding = lv_encoding
diff --git a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
index 8bd3001c1..30677ff55 100644
--- a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
+++ b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
@@ -30,7 +30,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -43,7 +47,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '2' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -56,7 +64,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '2' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -97,7 +109,10 @@ CLASS ltcl_test IMPLEMENTATION.
iv_xml = |\n 2\n|
iv_unpretty = abap_true ).
- lv_result = lv_result+1.
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result