From 47a2bf9daa50750a214a53d8968eb28ef816fe44 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 1 Jan 2019 09:47:35 -0500 Subject: add locale tests --- locale.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 locale.c (limited to 'locale.c') diff --git a/locale.c b/locale.c new file mode 100644 index 0000000..629ef0b --- /dev/null +++ b/locale.c @@ -0,0 +1,75 @@ +#include +#include +#include "test.h" + +void test_locale(void) +{ + struct lconv *lc; + + testing_header("locale.h"); + +#ifndef LC_ALL +#error LC_ALL not defined +#endif + +#ifndef LC_COLLATE +#error LC_COLLATE not defined +#endif + +#ifndef LC_CTYPE +#error LC_CTYPE not defined +#endif + +#ifndef LC_MONETARY +#error LC_MONETARY not defined +#endif + +#ifndef LC_NUMERIC +#error LC_NUMERIC not defined +#endif + +#ifndef LC_TIME +#error LC_TIME not defined +#endif + + test_true(LC_ALL != LC_COLLATE); + test_true(LC_ALL != LC_CTYPE); + test_true(LC_ALL != LC_MONETARY); + test_true(LC_ALL != LC_NUMERIC); + test_true(LC_ALL != LC_TIME); + + test_true(LC_COLLATE != LC_CTYPE); + test_true(LC_COLLATE != LC_MONETARY); + test_true(LC_COLLATE != LC_NUMERIC); + test_true(LC_COLLATE != LC_TIME); + + test_true(LC_CTYPE != LC_MONETARY); + test_true(LC_CTYPE != LC_NUMERIC); + test_true(LC_CTYPE != LC_TIME); + + test_true(LC_MONETARY != LC_NUMERIC); + test_true(LC_MONETARY != LC_TIME); + + test_true(LC_NUMERIC != LC_TIME); + + /* TODO: test setlocale() */ + + testing_comment("testing results of localeconv()"); + lc = localeconv(); + test_string(lc->decimal_point, "."); + test_string(lc->thousands_sep, ""); + test_string(lc->grouping, ""); + test_string(lc->int_curr_symbol, ""); + test_string(lc->currency_symbol, ""); + test_string(lc->mon_decimal_point, ""); + test_string(lc->mon_thousands_sep, ""); + test_string(lc->positive_sign, ""); + test_string(lc->negative_sign, ""); + test_int_equals(lc->frac_digits, CHAR_MAX); + test_int_equals(lc->p_cs_precedes, CHAR_MAX); + test_int_equals(lc->p_sep_by_space, CHAR_MAX); + test_int_equals(lc->n_cs_precedes, CHAR_MAX); + test_int_equals(lc->n_sep_by_space, CHAR_MAX); + test_int_equals(lc->p_sign_posn, CHAR_MAX); + test_int_equals(lc->n_sign_posn, CHAR_MAX); +} -- cgit v1.2.1