12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef _ASN1_TEST_H
- #define _ASN1_TEST_H
-
- FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
- #include <stdint.h>
- #include <ipxe/image.h>
- #include <ipxe/sha1.h>
- #include <ipxe/test.h>
-
- /** Digest algorithm used for ASN.1 tests */
- #define asn1_test_digest_algorithm sha1_algorithm
-
- /** Digest size used for ASN.1 tests */
- #define ASN1_TEST_DIGEST_SIZE SHA1_DIGEST_SIZE
-
- /** An ASN.1 test digest */
- struct asn1_test_digest {
- /** Digest value */
- uint8_t digest[ASN1_TEST_DIGEST_SIZE];
- };
-
- /** An ASN.1 test */
- struct asn1_test {
- /** Image type */
- struct image_type *type;
- /** Source image */
- struct image *image;
- /** Expected digests of ASN.1 objects */
- struct asn1_test_digest *expected;
- /** Number of ASN.1 objects */
- unsigned int count;
- };
-
- /**
- * Define an ASN.1 test
- *
- * @v _name Test name
- * @v _type Test image file type
- * @v _file Test image file data
- * @v ... Expected ASN.1 object digests
- * @ret test ASN.1 test
- */
- #define ASN1( _name, _type, _file, ... ) \
- static const char _name ## __file[] = _file; \
- static struct image _name ## __image = { \
- .refcnt = REF_INIT ( ref_no_free ), \
- .name = #_name, \
- .data = ( userptr_t ) ( _name ## __file ), \
- .len = sizeof ( _name ## __file ), \
- }; \
- static struct asn1_test_digest _name ## _expected[] = { \
- __VA_ARGS__ \
- }; \
- static struct asn1_test _name = { \
- .type = _type, \
- .image = & _name ## __image, \
- .expected = _name ## _expected, \
- .count = ( sizeof ( _name ## _expected ) / \
- sizeof ( _name ## _expected[0] ) ), \
- };
-
- extern void asn1_okx ( struct asn1_test *test, const char *file,
- unsigned int line );
-
- /**
- * Report ASN.1 test result
- *
- * @v test ASN.1 test
- */
- #define asn1_ok( test ) asn1_okx ( test, __FILE__, __LINE__ )
-
- #endif /* _ASN1_TEST_H */
|