Skip to content

Test failures on architectures where char is unsigned #30

@s-fritsch

Description

@s-fritsch

I have packaged the mapcode utility for Debian linux and there are unit test failures on architectures where char is unsigned (like arm and powerpc):

    Mapcode format tests
    *** ERROR *** compareWithMapcodeFormatUtf8("###################") returns -298 (-297 expected)
    *** ERROR *** "ttat.tt    " : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("ttat-tt tt.tt") returns -288 (-289 expected)
    *** ERROR *** compareWithMapcodeFormatUtf8("ttat tt.tt") returns -288 (-289 expected)
    *** ERROR *** "XXAX.XXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "2A22.2222" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "22A2.2222" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "MAP.CODE" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "XAXX.XXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "XXXA.XXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "XXXAX.XXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "XXXXA.XXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.XXXXA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.ALA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.LAXA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.LLLLA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.A2e" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.2e2e" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.2222u" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "222A.2222" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "222A2.2222" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "ttt 2222A.2222" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("ttt 2222A.2222") returns -199 (-289 expected)
    *** ERROR *** "2222.2AAA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "A222.2AAA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "xx-xx xx.x#x" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("xx-xx xx.x#x") returns -199 (-297 expected)
    *** ERROR *** "xx# xx.xx" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("xx# xx.xx") returns -199 (-297 expected)
    *** ERROR *** "xx-xx #xx.xx" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("xx-xx #xx.xx") returns -199 (-297 expected)
    *** ERROR *** "xx-xx xx.xx-xx#xx" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("xx-xx xx.xx-xx#xx") returns -199 (-297 expected)
    *** ERROR *** "DDDa.DDD" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "DDDDE.xxxx" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("DDDDDA   xx.xx") returns -298 (-289 expected)
    *** ERROR *** "DD.DDDDA      " : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD.DD-A") returns 0 (-293 expected)
    *** ERROR *** myParseMapcodeString("DD.DD-A")=-98, expected 0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD.DD-xA") returns 0 (-293 expected)
    *** ERROR *** myParseMapcodeString("DD.DD-xA")=-98, expected 0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD.DD-xxxE") returns 0 (-293 expected)
    *** ERROR *** myParseMapcodeString("DD.DD-xxxE")=-98, expected 0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD.DD-xxxxxu") returns 0 (-293 expected)
    *** ERROR *** myParseMapcodeString("DD.DD-xxxxxu")=-98, expected 0
    *** ERROR *** "ta.xx     " : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "DD-DD AA.33  " : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD-DD AA.33  ") returns -199 (-289 expected)
    *** ERROR *** "DD-DD A3A.XX " : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD-DD A3A.XX ") returns -199 (-289 expected)
    *** ERROR *** "DD-DD A33A.XX" : myParseMapcodeString=-199, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("DD-DD A33A.XX") returns -199 (-289 expected)
    *** ERROR *** "tta.ttt    " : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "ttaa.ttt   " : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "XXXX.AXXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.AXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.XAXX" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "nld XXXX.AXXA" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "2222.A22" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "2222.A222" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** "2222.2A22" : myParseMapcodeString=-289, compareWithMapcodeFormatUtf8=0
    *** ERROR *** compareWithMapcodeFormatUtf8("NLD
49.YV") returns -298 (-297 expected)
49.YV") returns -298 (-297 expected)atUtf8("NLD
    *** ERROR *** compareWithMapcodeFormatUtf8("NLD
                                               49.YV") returns -298 (-297 expected)
    *** ERROR *** compareWithMapcodeFormatUtf8("NL49.YV") returns -298 (-297 expected)
    *** ERROR *** compareWithMapcodeFormatUtf8("NLD49.YV") returns -298 (-297 expected)
    *** ERROR *** 93 of 288 myParseMapcodeString() calls succeeded (expected 89)
    *** ERROR *** invalid mapcode "NLD XXX.#XX" decodes without error

You can use -funsigned-char with gcc to simulate the effect on x86.

You probably should add something like this in testEnvironment() in the unit test, to get this information in the test output:

    char t = (char)(-1);

    if ((int)t == -1)
          printf("char is signed\n");
    else
          printf("char is unsigned\n");

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions