9unit/test/append-test-log.c

102 lines
2.1 KiB
C
Raw Normal View History

2023-11-10 15:30:44 -05:00
/*
9unit
Copyright (C) Jonathan Lamothe <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/>.
*/
#include <u.h>
2023-11-10 16:17:06 -05:00
#include <libc.h>
2023-11-10 15:30:44 -05:00
#include "../9unit.h"
2023-11-10 16:17:06 -05:00
#include "util.h"
2023-11-10 15:30:44 -05:00
#include "append-test-log.h"
2023-11-10 16:17:06 -05:00
// Local Prototypes
static void append_to_empty(TestState *);
2023-11-12 19:37:19 -05:00
static void append_to_existing(TestState *);
2023-11-10 16:17:06 -05:00
2023-11-10 15:30:44 -05:00
// Public Functions
void
2023-11-10 16:17:06 -05:00
test_append_test_log(TestState *s)
{
print("append_test_log()\n");
append_to_empty(s);
2023-11-12 19:37:19 -05:00
append_to_existing(s);
2023-11-10 16:17:06 -05:00
}
// Local Functions
static void
append_to_empty(TestState *s)
2023-11-10 15:30:44 -05:00
{
2023-11-10 16:17:06 -05:00
TestState test;
print("\tappend to empty\n");
mk_sample_state(&test);
append_test_log(&test, "foo");
// first_log shouldn't be null
print("\t\tfirst_log\n");
chk_ptr_ne(
s,
"ERROR: append_test_log(): append to empty: first_log:",
test.first_log,
0
);
// log should say "foo"
print("\t\t\ttext\n");
chk_str_eq(
s,
"ERROR: append_test_log(): append to empty: first_log: text:",
test.first_log->text,
"foo"
);
// last_log should match first_log
print("\t\tlast_log\n");
chk_ptr_eq(
s,
"ERROR: append_test_log(): append to empty: last_log:",
test.last_log,
test.first_log
);
2023-11-10 15:30:44 -05:00
}
2023-11-12 19:37:19 -05:00
static void
append_to_existing(TestState *s)
{
TestState test;
TestLogEntry first, second;
print("\tappend to existing\n");
// build initial state/log
mk_sample_state(&test);
first.text = "foo";
first.next = &second;
second.text = "bar";
second.next = 0;
test.first_log = &first;
test.last_log = &second;
append_test_log(&test, "baz");
}
2023-11-10 15:30:44 -05:00
//jl