mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * 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"
 | |
| 
 | |
| static int test_string_tbl(void)
 | |
| {
 | |
|     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;
 | |
| }
 | |
| 
 | |
| int setup_tests(void)
 | |
| {
 | |
|     ADD_TEST(test_string_tbl);
 | |
|     return 1;
 | |
| }
 |