blob: ceadef5419f714ee2387782cca267870fe7dd498 [file] [log] [blame]
Laurence Lundbladed92a6162018-11-01 11:38:35 +07001/*==============================================================================
Laurence Lundblade475c2722024-05-08 11:17:47 -07002 cmd_line_mainc.c -- Runs tests for QCBOR encoder-decoder
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -08003
Laurence Lundbladeee851742020-01-08 08:37:05 -08004 Copyright (c) 2018-2020, Laurence Lundblade. All rights reserved.
Laurence Lundblade035bd782019-01-21 17:01:31 -08005
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -08006 SPDX-License-Identifier: BSD-3-Clause
Laurence Lundblade035bd782019-01-21 17:01:31 -08007
Laurence Lundbladee8f58162024-08-22 10:30:08 -07008 See BSD-3-Clause license in file named "LICENSE"
Laurence Lundblade035bd782019-01-21 17:01:31 -08009
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -080010 Created on 9/13/18
Laurence Lundbladeee851742020-01-08 08:37:05 -080011 =============================================================================*/
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080012
Laurence Lundblade74f68412018-09-13 12:18:49 -070013#include <stdio.h>
Laurence Lundblade781fd822018-10-01 09:37:52 -070014#include "run_tests.h"
Laurence Lundbladed4cd7232020-07-03 19:30:48 -070015#include "example.h"
Laurence Lundblade721b56e2024-10-22 03:02:04 -070016#include "tag-examples.h"
Laurence Lundblade41e96ca2022-04-09 10:37:39 -060017#include "ub-example.h"
Laurence Lundblade74f68412018-09-13 12:18:49 -070018
Laurence Lundbladea954db92018-09-28 19:27:31 -070019
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080020/*
21 This is an implementation of OutputStringCB built using stdio. If
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -080022 you don't have stdio, replaces this.
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080023 */
Laurence Lundbladed396f622019-01-12 17:12:29 -080024static void fputs_wrapper(const char *szString, void *pOutCtx, int bNewLine)
Laurence Lundbladecc2ed342018-09-22 17:29:55 -070025{
Laurence Lundbladed396f622019-01-12 17:12:29 -080026 fputs(szString, (FILE *)pOutCtx);
27 if(bNewLine) {
28 fputs("\n", pOutCtx);
29 }
Laurence Lundblade8ca13692018-12-04 14:35:53 +090030}
31
32
Laurence Lundblade570fab52018-10-13 18:28:27 +080033int main(int argc, const char * argv[])
34{
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080035 (void)argc; // Avoid unused parameter error
Laurence Lundbladea44d5062018-10-17 18:45:12 +053036
Laurence Lundblade323f8a92020-09-06 19:43:09 -070037 RunQCborExample();
Laurence Lundblade721b56e2024-10-22 03:02:04 -070038 RunTagExamples();
Laurence Lundblade41e96ca2022-04-09 10:37:39 -060039 RunUsefulBufExample();
Laurence Lundbladed4cd7232020-07-03 19:30:48 -070040
41
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080042 // This call prints out sizes of data structures to remind us
43 // to keep them small.
Laurence Lundblade29501b72020-01-16 15:05:18 -080044 PrintSizesQCBOR(&fputs_wrapper, stdout);
Laurence Lundblade3aee3a32018-12-17 16:17:45 -080045
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080046 // This runs all the tests
Laurence Lundblade29501b72020-01-16 15:05:18 -080047 return RunTestsQCBOR(argv+1, &fputs_wrapper, stdout, NULL);
Laurence Lundblade74f68412018-09-13 12:18:49 -070048}