Path: blob/main/lib/libc/tests/iconv/iconvctl_test.c
39491 views
/*-1* Copyright (c) 2016 Eric van Gyzen2*3* Redistribution and use in source and binary forms, with or without4* modification, are permitted provided that the following conditions5* are met:6* 1. Redistributions of source code must retain the above copyright7* notice, this list of conditions and the following disclaimer.8* 2. Redistributions in binary form must reproduce the above copyright9* notice, this list of conditions and the following disclaimer in the10* documentation and/or other materials provided with the distribution.11*12* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND13* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE14* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE15* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE16* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL17* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS18* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)19* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT20* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY21* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF22* SUCH DAMAGE.23*/2425#include <iconv.h>2627#include <atf-c.h>2829static void30test_trivialp(const char *src, const char *dst, int expected)31{32iconv_t ic;33int actual, status;3435ic = iconv_open(dst, src);36ATF_REQUIRE(ic != (iconv_t)-1);3738status = iconvctl(ic, ICONV_TRIVIALP, &actual);39ATF_REQUIRE(status == 0);4041ATF_REQUIRE(actual == expected);4243status = iconv_close(ic);44ATF_REQUIRE(status == 0);45}4647ATF_TC_WITHOUT_HEAD(iconvctl_trivialp_test);48ATF_TC_BODY(iconvctl_trivialp_test, tc)49{5051test_trivialp("ISO-8859-1", "ISO-8859-1", 1);52test_trivialp("ISO-8859-1", "ISO-8859-15", 0);53test_trivialp("ISO-8859-15", "ISO-8859-1", 0);54test_trivialp("ISO-8859-15", "UTF-8", 0);55test_trivialp("UTF-8", "ASCII", 0);56}5758ATF_TP_ADD_TCS(tp)59{6061ATF_TP_ADD_TC(tp, iconvctl_trivialp_test);6263return (atf_no_error());64}656667