iPXE
archive_test.h
Go to the documentation of this file.
1#ifndef _ARCHIVE_TEST_H
2#define _ARCHIVE_TEST_H
3
4FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
5
6#include <stdint.h>
7#include <ipxe/test.h>
8
9/** An archive extraction test */
11 /** Archive image type */
12 const struct image_type *type;
13 /** Archive image filename */
14 const char *archive_name;
15 /** Archive image data */
16 const void *archive;
17 /** Length of archive image data */
19 /** Explicit name for extraction (or NULL) */
20 const char *extract_name;
21 /** Expected extracted image name */
22 const char *expected_name;
23 /** Expected extracted image data */
24 const void *expected;
25 /** Length of expected extracted image data */
27};
28
29/** Define an archive extraction test */
30#define ARCHIVE_TEST( name, TYPE, ARCHIVE_NAME, EXTRACT_NAME, \
31 EXPECTED_NAME, ARCHIVE, EXPECTED ) \
32 static const uint8_t name ## _archive FILE_ARRAY ( ARCHIVE ); \
33 static const uint8_t name ## _expected FILE_ARRAY ( EXPECTED ); \
34 static struct archive_test name = { \
35 .type = TYPE, \
36 .archive_name = ARCHIVE_NAME, \
37 .archive = name ## _archive, \
38 .archive_len = sizeof ( name ## _archive ), \
39 .extract_name = EXTRACT_NAME, \
40 .expected_name = EXPECTED_NAME, \
41 .expected = name ## _expected, \
42 .expected_len = sizeof ( name ## _expected ), \
43 };
44
45/**
46 * Report an archive extraction test result
47 *
48 * @v test Archive extraction test
49 */
50#define archive_ok( test ) archive_okx ( test, __FILE__, __LINE__ )
51
52extern void archive_okx ( struct archive_test *test, const char *file,
53 unsigned int line );
54
55#endif /* _ARCHIVE_TEST_H */
void archive_okx(struct archive_test *test, const char *file, unsigned int line)
Report an archive extraction test result.
static int test
Definition epic100.c:73
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:921
An archive extraction test.
const void * expected
Expected extracted image data.
const char * extract_name
Explicit name for extraction (or NULL).
const void * archive
Archive image data.
const char * expected_name
Expected extracted image name.
const char * archive_name
Archive image filename.
size_t expected_len
Length of expected extracted image data.
size_t archive_len
Length of archive image data.
const struct image_type * type
Archive image type.
An executable image type.
Definition image.h:102
Self-test infrastructure.