diff options
author | Jan Hutter <jhutter@hsr.ch> | 2005-12-05 14:01:56 +0000 |
---|---|---|
committer | Jan Hutter <jhutter@hsr.ch> | 2005-12-05 14:01:56 +0000 |
commit | e70c7feb028e20913af092fbe204ec648bbeda65 (patch) | |
tree | edab5aafb1a06f486c49db5f4aff7f62e6a1b076 /Source/charon/testcases/generator_test.c | |
parent | 9bdd74eae7fb432163fafb21e7fc6c4fb4df2247 (diff) | |
download | strongswan-e70c7feb028e20913af092fbe204ec648bbeda65.tar.bz2 strongswan-e70c7feb028e20913af092fbe204ec648bbeda65.tar.xz |
- implemented and tested VENDOR ID payload
Diffstat (limited to 'Source/charon/testcases/generator_test.c')
-rw-r--r-- | Source/charon/testcases/generator_test.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/charon/testcases/generator_test.c b/Source/charon/testcases/generator_test.c index 75075f2f7..0ca227694 100644 --- a/Source/charon/testcases/generator_test.c +++ b/Source/charon/testcases/generator_test.c @@ -44,6 +44,7 @@ #include <encoding/payloads/certreq_payload.h> #include <encoding/payloads/ts_payload.h> #include <encoding/payloads/delete_payload.h> +#include <encoding/payloads/vendor_id_payload.h> /* * Described in Header @@ -1296,3 +1297,52 @@ void test_generator_with_delete_payload(tester_t *tester) charon->logger_manager->destroy_logger(charon->logger_manager,logger); } + +/* + * Described in header. + */ +void test_generator_with_vendor_id_payload(tester_t *tester) +{ + generator_t *generator; + vendor_id_payload_t *vendor_id_payload; + logger_t *logger; + chunk_t generated_data; + chunk_t data; + + logger = charon->logger_manager->create_logger(charon->logger_manager,TESTER,"Message with VENDOR ID Payload"); + + /* create generator */ + generator = generator_create(); + tester->assert_true(tester,(generator != NULL), "generator create check"); + + vendor_id_payload = vendor_id_payload_create(); + + + data.ptr = "123456789012"; + data.len = strlen(data.ptr); +; + vendor_id_payload->set_data(vendor_id_payload,data); + generator->generate_payload(generator,(payload_t *)vendor_id_payload); + generator->write_to_chunk(generator,&generated_data); + logger->log_chunk(logger,RAW,"generated payload",&generated_data); + + u_int8_t expected_generation[] = { + /* payload header */ + 0x00,0x00,0x00,0x10, + /* vendor_id data */ + 0x31,0x32,0x33,0x34, + 0x35,0x36,0x37,0x38, + 0x39,0x30,0x31,0x32, + }; + + logger->log_bytes(logger,RAW,"expected payload",expected_generation,sizeof(expected_generation)); + + tester->assert_true(tester,(memcmp(expected_generation,generated_data.ptr,sizeof(expected_generation)) == 0), "compare generated data"); + + allocator_free_chunk(&generated_data); + + vendor_id_payload->destroy(vendor_id_payload); + generator->destroy(generator); + + charon->logger_manager->destroy_logger(charon->logger_manager,logger); +} |