Path: blob/main/contrib/libcbor/test/unicode_test.c
39534 views
/*1* Copyright (c) 2014-2020 Pavel Kalvoda <[email protected]>2*3* libcbor is free software; you can redistribute it and/or modify4* it under the terms of the MIT license. See LICENSE for details.5*/67#include "assertions.h"89#include "../src/cbor/internal/unicode.h"10struct _cbor_unicode_status status;1112unsigned char missing_bytes_data[] = {0xC4, 0x8C};1314/* Capital accented C */15static void test_missing_bytes(void **_CBOR_UNUSED(_state)) {16assert_true(_cbor_unicode_codepoint_count(missing_bytes_data, 1, &status) ==170);18assert_true(status.status == _CBOR_UNICODE_BADCP);19assert_true(status.location == 1);2021assert_true(_cbor_unicode_codepoint_count(missing_bytes_data, 2, &status) ==221);23assert_true(status.status == _CBOR_UNICODE_OK);24assert_true(status.location == 0);25}2627unsigned char invalid_sequence_data[] = {0x65, 0xC4, 0x00};2829/* e, invalid seq */30static void test_invalid_sequence(void **_CBOR_UNUSED(_state)) {31assert_true(32_cbor_unicode_codepoint_count(invalid_sequence_data, 3, &status) == 0);33assert_true(status.status == _CBOR_UNICODE_BADCP);34assert_true(status.location == 2);35}3637int main(void) {38const struct CMUnitTest tests[] = {cmocka_unit_test(test_missing_bytes),39cmocka_unit_test(test_invalid_sequence)};40return cmocka_run_group_tests(tests, NULL, NULL);41}424344