| 
									
										
										
										
											2017-07-27 01:18:50 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the OpenSSL license (the "License").  You may not use | 
					
						
							|  |  |  |  * this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  |  * in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  |  * https://www.openssl.org/source/license.html
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Tests for the ANS1_STRING_TABLE_* functions */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <stdio.h>
 | 
					
						
							|  |  |  | #include <string.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <openssl/asn1.h>
 | 
					
						
							|  |  |  | #include "testutil.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-16 05:39:03 +08:00
										 |  |  | static int test_string_tbl(void) | 
					
						
							| 
									
										
										
										
											2017-07-27 01:18:50 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     const ASN1_STRING_TABLE *tmp = NULL; | 
					
						
							|  |  |  |     int nid = 12345678, nid2 = 87654321, rv = 0, ret = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tmp = ASN1_STRING_TABLE_get(nid); | 
					
						
							|  |  |  |     if (!TEST_ptr_null(tmp)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: ASN1_STRING_TABLE_get non-exist nid"); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ret = ASN1_STRING_TABLE_add(nid, -1, -1, MBSTRING_ASC, 0); | 
					
						
							|  |  |  |     if (!TEST_true(ret)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: add NID(%d) failed", nid); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ret = ASN1_STRING_TABLE_add(nid2, -1, -1, MBSTRING_ASC, 0); | 
					
						
							|  |  |  |     if (!TEST_true(ret)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: add NID(%d) failed", nid2); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tmp = ASN1_STRING_TABLE_get(nid); | 
					
						
							|  |  |  |     if (!TEST_ptr(tmp)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: get NID(%d) failed", nid); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tmp = ASN1_STRING_TABLE_get(nid2); | 
					
						
							|  |  |  |     if (!TEST_ptr(tmp)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: get NID(%d) failed", nid2); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ASN1_STRING_TABLE_cleanup(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* check if all newly added NIDs are cleaned up */ | 
					
						
							|  |  |  |     tmp = ASN1_STRING_TABLE_get(nid); | 
					
						
							|  |  |  |     if (!TEST_ptr_null(tmp)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: get NID(%d) failed", nid); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tmp = ASN1_STRING_TABLE_get(nid2); | 
					
						
							|  |  |  |     if (!TEST_ptr_null(tmp)) { | 
					
						
							|  |  |  |         TEST_info("asn1 string table: get NID(%d) failed", nid2); | 
					
						
							|  |  |  |         goto out; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     rv = 1; | 
					
						
							|  |  |  |  out: | 
					
						
							|  |  |  |     return rv; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-27 06:08:36 +08:00
										 |  |  | int setup_tests(void) | 
					
						
							| 
									
										
										
										
											2017-07-27 01:18:50 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     ADD_TEST(test_string_tbl); | 
					
						
							| 
									
										
										
										
											2017-07-27 06:08:36 +08:00
										 |  |  |     return 1; | 
					
						
							| 
									
										
										
										
											2017-07-27 01:18:50 +08:00
										 |  |  | } |