blob: 4df6e98bf1744cf4517be79b31f936e96dabd696 [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 Lundbladea3fd49f2019-01-21 10:16:22 -08008 See BSD-3-Clause license in README.md
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 Lundblade41e96ca2022-04-09 10:37:39 -060016#include "ub-example.h"
Laurence Lundblade74f68412018-09-13 12:18:49 -070017
Laurence Lundbladea954db92018-09-28 19:27:31 -070018
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080019/*
20 This is an implementation of OutputStringCB built using stdio. If
Laurence Lundbladea3fd49f2019-01-21 10:16:22 -080021 you don't have stdio, replaces this.
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080022 */
Laurence Lundbladed396f622019-01-12 17:12:29 -080023static void fputs_wrapper(const char *szString, void *pOutCtx, int bNewLine)
Laurence Lundbladecc2ed342018-09-22 17:29:55 -070024{
Laurence Lundbladed396f622019-01-12 17:12:29 -080025 fputs(szString, (FILE *)pOutCtx);
26 if(bNewLine) {
27 fputs("\n", pOutCtx);
28 }
Laurence Lundblade8ca13692018-12-04 14:35:53 +090029}
30
31
Laurence Lundblade570fab52018-10-13 18:28:27 +080032int main(int argc, const char * argv[])
33{
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080034 (void)argc; // Avoid unused parameter error
Laurence Lundbladea44d5062018-10-17 18:45:12 +053035
Laurence Lundblade323f8a92020-09-06 19:43:09 -070036 RunQCborExample();
Laurence Lundblade41e96ca2022-04-09 10:37:39 -060037 RunUsefulBufExample();
Laurence Lundbladed4cd7232020-07-03 19:30:48 -070038
39
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080040 // This call prints out sizes of data structures to remind us
41 // to keep them small.
Laurence Lundblade29501b72020-01-16 15:05:18 -080042 PrintSizesQCBOR(&fputs_wrapper, stdout);
Laurence Lundblade3aee3a32018-12-17 16:17:45 -080043
Laurence Lundblade1f8b5b02019-01-01 22:27:38 -080044 // This runs all the tests
Laurence Lundblade29501b72020-01-16 15:05:18 -080045 return RunTestsQCBOR(argv+1, &fputs_wrapper, stdout, NULL);
Laurence Lundblade74f68412018-09-13 12:18:49 -070046}