Changeset 0260034 in mainline for uspace/lib/c/test/strtol.c


Ignore:
Timestamp:
2019-05-27T16:17:33Z (5 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
dd0502ae
Parents:
31a566b
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2019-05-27 15:44:21)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2019-05-27 16:17:33)
Message:

Fix and test additional corner cases in strtol()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/test/strtol.c

    r31a566b r0260034  
    404404        endp = endp_unchanged;
    405405        errno = errno_unchanged;
     406        output = strtol(input = "    0xg", &endp, base = 0);
     407        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     408        PCUT_ASSERT_PTR_EQUALS(input + 5, endp);
     409        PCUT_ASSERT_INT_EQUALS(0, output);
     410
     411        endp = endp_unchanged;
     412        errno = errno_unchanged;
    406413        output = strtol(input = "    0x1", &endp, base = 0);
    407414        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     
    418425        endp = endp_unchanged;
    419426        errno = errno_unchanged;
     427        output = strtol(input = "    0xg", &endp, base = 16);
     428        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     429        PCUT_ASSERT_PTR_EQUALS(input + 5, endp);
     430        PCUT_ASSERT_INT_EQUALS(0, output);
     431
     432        endp = endp_unchanged;
     433        errno = errno_unchanged;
     434        output = strtol(input = "    g", &endp, base = 16);
     435        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     436        PCUT_ASSERT_PTR_EQUALS(input, endp);
     437        PCUT_ASSERT_INT_EQUALS(0, output);
     438
     439        endp = endp_unchanged;
     440        errno = errno_unchanged;
    420441        output = strtol(input = "    0x1", &endp, base = 16);
    421442        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
    422443        PCUT_ASSERT_PTR_EQUALS(input + 7, endp);
    423444        PCUT_ASSERT_INT_EQUALS(1, output);
     445
     446        endp = endp_unchanged;
     447        errno = errno_unchanged;
     448        output = strtol(input = "    +", &endp, base = 0);
     449        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     450        PCUT_ASSERT_PTR_EQUALS(input, endp);
     451        PCUT_ASSERT_INT_EQUALS(0, output);
     452
     453        endp = endp_unchanged;
     454        errno = errno_unchanged;
     455        output = strtol(input = "    -", &endp, base = 0);
     456        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     457        PCUT_ASSERT_PTR_EQUALS(input, endp);
     458        PCUT_ASSERT_INT_EQUALS(0, output);
     459
     460        endp = endp_unchanged;
     461        errno = errno_unchanged;
     462        output = strtol(input = "    +", &endp, base = 10);
     463        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     464        PCUT_ASSERT_PTR_EQUALS(input, endp);
     465        PCUT_ASSERT_INT_EQUALS(0, output);
     466
     467        endp = endp_unchanged;
     468        errno = errno_unchanged;
     469        output = strtol(input = "    -", &endp, base = 10);
     470        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     471        PCUT_ASSERT_PTR_EQUALS(input, endp);
     472        PCUT_ASSERT_INT_EQUALS(0, output);
     473
     474        endp = endp_unchanged;
     475        errno = errno_unchanged;
     476        output = strtol(input = "+", &endp, base = 0);
     477        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     478        PCUT_ASSERT_PTR_EQUALS(input, endp);
     479        PCUT_ASSERT_INT_EQUALS(0, output);
     480
     481        endp = endp_unchanged;
     482        errno = errno_unchanged;
     483        output = strtol(input = "-", &endp, base = 0);
     484        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     485        PCUT_ASSERT_PTR_EQUALS(input, endp);
     486        PCUT_ASSERT_INT_EQUALS(0, output);
     487
     488        endp = endp_unchanged;
     489        errno = errno_unchanged;
     490        output = strtol(input = "+", &endp, base = 10);
     491        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     492        PCUT_ASSERT_PTR_EQUALS(input, endp);
     493        PCUT_ASSERT_INT_EQUALS(0, output);
     494
     495        endp = endp_unchanged;
     496        errno = errno_unchanged;
     497        output = strtol(input = "-", &endp, base = 10);
     498        PCUT_ASSERT_INT_EQUALS(errno_unchanged, errno);
     499        PCUT_ASSERT_PTR_EQUALS(input, endp);
     500        PCUT_ASSERT_INT_EQUALS(0, output);
    424501}
    425502
Note: See TracChangeset for help on using the changeset viewer.