Merge remote-tracking branch 'upstream/master'
Conflicts: src/bitwriter.c
This commit is contained in:
commit
2c7c9820e2
5 changed files with 58 additions and 2 deletions
|
|
@ -104,6 +104,7 @@ void h_bit_writer_free(HBitWriter* w) {
|
|||
g_free(w);
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_TESTS
|
||||
// TESTS BELOW HERE
|
||||
typedef struct {
|
||||
unsigned long long data;
|
||||
|
|
@ -134,3 +135,43 @@ void run_bitwriter_test(bitwriter_test_elem data[], char flags) {
|
|||
g_check_cmpulonglong ((unsigned long long)h_read_bits(&input, data[i].nbits, FALSE), ==, data[i].data);
|
||||
}
|
||||
}
|
||||
|
||||
static void test_bitwriter_ints(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_bitwriter_be(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_bitwriter_le(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_largebits_be(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_largebits_le(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_offset_largebits_be(void) {
|
||||
|
||||
}
|
||||
|
||||
static void test_offset_largebits_le(void) {
|
||||
|
||||
}
|
||||
|
||||
void register_bitwriter_tests(void) {
|
||||
g_test_add_func("/core/bitwriter/be", test_bitwriter_be);
|
||||
g_test_add_func("/core/bitwriter/le", test_bitwriter_le);
|
||||
g_test_add_func("/core/bitwriter/largebits-be", test_largebits_be);
|
||||
g_test_add_func("/core/bitwriter/largebits-le", test_largebits_le);
|
||||
g_test_add_func("/core/bitwriter/offset-largebits-be", test_offset_largebits_be);
|
||||
g_test_add_func("/core/bitwriter/offset-largebits-le", test_offset_largebits_le);
|
||||
g_test_add_func("/core/bitwriter/ints", test_bitwriter_ints);
|
||||
}
|
||||
|
||||
#endif // #ifdef INCLUDE_TESTS
|
||||
|
|
|
|||
|
|
@ -265,6 +265,10 @@ HParseResult* h_parse(const HParser* parser, const uint8_t* input, size_t length
|
|||
return res;
|
||||
}
|
||||
|
||||
void h_parse_result_free(HParseResult *result) {
|
||||
h_delete_arena(result->arena);
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_TESTS
|
||||
|
||||
#include "test_suite.h"
|
||||
|
|
@ -427,6 +431,7 @@ static void test_action(void) {
|
|||
|
||||
g_check_parse_ok(action_, "ab", 2, "(u0x41 u0x42)");
|
||||
g_check_parse_ok(action_, "AB", 2, "(u0x41 u0x42)");
|
||||
g_check_parse_failed(action_, "XX", 2);
|
||||
}
|
||||
|
||||
static void test_not_in(void) {
|
||||
|
|
|
|||
|
|
@ -443,6 +443,11 @@ HParser *h_indirect();
|
|||
*/
|
||||
void h_bind_indirect(HParser* indirect, HParser* inner);
|
||||
|
||||
/**
|
||||
* Free the memory allocated to an HParseResult when it is no longer needed.
|
||||
*/
|
||||
void h_parse_result_free(HParseResult *result);
|
||||
|
||||
// Some debugging aids
|
||||
/**
|
||||
* Format token into a compact unambiguous form. Useful for parser test cases.
|
||||
|
|
|
|||
|
|
@ -10,8 +10,11 @@ static HParseResult* parse_action(void *env, HParseState *state) {
|
|||
if (a->p && a->action) {
|
||||
HParseResult *tmp = h_do_parse(a->p, state);
|
||||
//HParsedToken *tok = a->action(h_do_parse(a->p, state));
|
||||
if(tmp) {
|
||||
const HParsedToken *tok = a->action(tmp);
|
||||
return make_result(state, (HParsedToken*)tok);
|
||||
} else
|
||||
return NULL;
|
||||
} else // either the parser's missing or the action's missing
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "test_suite.h"
|
||||
|
||||
extern void register_bitreader_tests();
|
||||
extern void register_bitwriter_tests();
|
||||
extern void register_parser_tests();
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
|
@ -26,6 +27,7 @@ int main(int argc, char** argv) {
|
|||
|
||||
// register various test suites...
|
||||
register_bitreader_tests();
|
||||
register_bitwriter_tests();
|
||||
register_parser_tests();
|
||||
|
||||
g_test_run();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue