From 43de4b0bfa52a7b3bf6b92df344bd76a97200e18 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 7 Jan 2024 12:35:56 +0200 Subject: (tests) Setup mocking, everything is now ready for tests --- tests/CMock | 1 + tests/CMock.yml | 3 +++ tests/Makefile | 23 ++++++++++++++++++----- tests/browser-net.tests.c | 40 +++++++++++++++++++++++++++++++++++++++- tests/helpers.c | 1 + tests/helpers.h | 5 +++++ 6 files changed, 67 insertions(+), 6 deletions(-) create mode 160000 tests/CMock create mode 100644 tests/CMock.yml create mode 100644 tests/helpers.c create mode 100644 tests/helpers.h (limited to 'tests') diff --git a/tests/CMock b/tests/CMock new file mode 160000 index 0000000..9192a95 --- /dev/null +++ b/tests/CMock @@ -0,0 +1 @@ +Subproject commit 9192a950897929d948027421e30a372b1770469b diff --git a/tests/CMock.yml b/tests/CMock.yml new file mode 100644 index 0000000..c2bc2b8 --- /dev/null +++ b/tests/CMock.yml @@ -0,0 +1,3 @@ +:cmock: + :plugins: + - :ignore diff --git a/tests/Makefile b/tests/Makefile index 4c6f82b..a3b95cd 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,17 +1,26 @@ RUBY=ruby UNITY_DIR=./Unity +CMOCK_DIR=./CMock + CC=gcc -CFLAGS=-I$(UNITY_DIR)/src +CFLAGS=-I$(UNITY_DIR)/src -I$(CMOCK_DIR)/src -I../src -I./mocks +UNILFILES=../src/sds/sds.c .PHONY: all all: build run .PHONY: build build: - for testfile in $$(find . -type f -name "*.tests.c") ;\ - do \ - $(RUBY) $(UNITY_DIR)/auto/generate_test_runner.rb $$testfile ;\ - $(CC) $(CFLAGS) -o $${testfile%.c} $(UNITY_DIR)/src/unity.c $$testfile $${testfile%.c}_Runner.c ;\ + $(RUBY) $(CMOCK_DIR)/lib/cmock.rb -oCMock.yml $$(find ../src -type f -name "*.h" -not -path "../src/sds/*") + for testfile in $$(find . -type f -name "*.tests.c") ;\ + do \ + $(RUBY) $(UNITY_DIR)/auto/generate_test_runner.rb $$testfile ;\ + includelist=$$(head -1 browser-net.tests.c | cut -c3-) ;\ + $(CC) $(CFLAGS) -o $${testfile%.c} \ + $(UNILFILES) $$(find ./mocks -type f -name "*.c" | grep -Fv $$(echo "$$includelist" | sed 's/ / -e /g')) \ + $$(echo "$$includelist" | sed 's/ / ..\/src\//g') \ + helpers.c $(UNITY_DIR)/src/unity.c $(CMOCK_DIR)/src/cmock.c \ + $$testfile $${testfile%.c}_Runner.c ;\ done .PHONY: run @@ -20,3 +29,7 @@ run: do \ $$runner || exit ;\ done + +.PHONY: clean +clean: + $(RM) *.tests *.tests_Runner.c diff --git a/tests/browser-net.tests.c b/tests/browser-net.tests.c index 2a8fec0..05a4a7c 100644 --- a/tests/browser-net.tests.c +++ b/tests/browser-net.tests.c @@ -1,5 +1,43 @@ +// browser-net.c #include "Unity/src/unity.h" +#include "helpers.h" +#include "../src/sds/sds.h" -void test_True(void) { +#include "../src/browser-net.h" +#include "mocks/Mockutil.h" +#include "mocks/Mockbrowser-cli.h" + +const char ip[] = "127.0.0.1"; +const char port[] = "10800"; +const char URL[] = "/test"; + +// Func_Returns_When + +void test_get_page_ReturnsEmptyLine_WhenURLIsBlank(void) { + streq_ExpectAndReturn("blank", "blank", 1); + sds page = get_page(ip, port, "blank"); + + TEST_ASSERT_EQUAL_STRING(page, "\n"); + + sdsfree(page); +} + +void test_get_page_ReturnsMessage_WhenCannotConnectToServer(void) { + streq_ExpectAndReturn(URL, "blank", 0); + herrc_Expect(3, "socket"); + atop_ExpectAndReturn("0", 0); + /* aton_ExpectAndReturn("255.255.255.255", NULL, -1); */ + /* aton_IgnoreArg_output(); */ + herrc_Expect(0, "inet_aton"); + herrc_Expect(0, "connect"); + + sds page = get_page("255.255.255.255", "0", URL); + + TEST_ASSERT_EQUAL_STRING(page, "Couldn't connect to server!\n"); + + sdsfree(page); +} + +void test_get_page_ReturnsGivenPage_WhenURLIsCorrect(void) { TEST_ASSERT_TRUE(1); } diff --git a/tests/helpers.c b/tests/helpers.c new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tests/helpers.c @@ -0,0 +1 @@ + diff --git a/tests/helpers.h b/tests/helpers.h new file mode 100644 index 0000000..e22f67c --- /dev/null +++ b/tests/helpers.h @@ -0,0 +1,5 @@ +#ifndef TEST_HELPERS +#define TEST_HELPERS + + +#endif -- cgit v1.2.3