TEST(cps_api_key,key_insert) { cps_api_key_t key; memset(&key,0,sizeof(key)); cps_api_key_set(&key,0,0); cps_api_key_set(&key,1,1); cps_api_key_set(&key,2,2); cps_api_key_set_len(&key,3); cps_api_key_t new_key ; cps_api_key_copy(&new_key,&key); cps_api_key_remove_element(&new_key,0); ASSERT_TRUE(cps_api_key_element_at(&new_key,0)== 1); ASSERT_TRUE(cps_api_key_get_len(&new_key)==2); cps_api_key_insert_element(&new_key,0,5); ASSERT_TRUE(cps_api_key_element_at(&new_key,0)== 5); ASSERT_TRUE(cps_api_key_get_len(&new_key)==3); cps_api_key_insert_element(&new_key,3,5); ASSERT_TRUE(cps_api_key_element_at(&new_key,3)== 5); ASSERT_TRUE(cps_api_key_get_len(&new_key)==4); cps_api_key_insert_element(&new_key,2,5); ASSERT_TRUE(cps_api_key_element_at(&new_key,2)== 5); ASSERT_TRUE(cps_api_key_get_len(&new_key)==5); ASSERT_TRUE(cps_api_key_element_at(&new_key,0)== 5); ASSERT_TRUE(cps_api_key_element_at(&new_key,2)== 5); ASSERT_TRUE(cps_api_key_element_at(&new_key,4)== 5); }
TEST(cps_api_key_cache,test_key_inserts) { size_t ix = 0; size_t mx = lst.size(); for ( ; ix < mx ; ++ix ) { if ((rand()%20)==1) { char b1[100]; missing.push_back(lst[ix]); entry e; _missing_cache.insert(lst[ix],e); printf("Skipping.. %s\n",cps_api_key_print(lst[ix],b1,sizeof(b1))); ASSERT_TRUE(_missing_cache.find(lst[ix],e,true)); continue; } entry e; cps_api_key_copy(&e.key,lst[ix]); e.ix = ix; ASSERT_FALSE(cache.find(&e.key,e,true)); cache.insert(&e.key,e); size_t klen = (rand() % 4) + 1; cps_api_key_set_len(&e.key,klen); if (cache.find(&e.key,e,true)) continue; cache.insert(&e.key,e); } }
TEST(cps_api_key_cache,test_key_inserts_full) { size_t ix = 0; size_t mx = lst.size(); for ( ; ix < mx ; ++ix ) { entry e; cps_api_key_copy(&e.key,lst[ix]); e.ix = ix; ASSERT_FALSE(full_cache.find(&e.key,e,true)); full_cache.insert(&e.key,e); ASSERT_TRUE(full_cache.find(&e.key,e,true)); } }
TEST(cps_api_key,key_compare) { char buff1[1024]; char buff2[1024]; cps_api_key_t key; memset(&key,0,sizeof(key)); cps_api_key_set(&key,0,1); cps_api_key_set(&key,1,3); cps_api_key_set(&key,2,1); cps_api_key_set(&key,3,1); cps_api_key_set_len(&key,4); cps_api_key_t key2; memset(&key2,0,sizeof(key2)); cps_api_key_set(&key2,0,1); cps_api_key_set(&key2,1,3); cps_api_key_set(&key2,2,1); cps_api_key_set(&key2,3,1); cps_api_key_set_len(&key2,4); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)==0); cps_api_key_set(&key2,1,4); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)!=0); cps_api_key_set(&key2,1,3); cps_api_key_set(&key2,4,2); cps_api_key_set_len(&key2,3); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)==0); cps_api_key_set(&key2,1,2); cps_api_key_set_len(&key2,4); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)!=0); cps_api_key_t key3; memset(&key3,0,sizeof(key3)); cps_api_key_set(&key3,0,1); cps_api_key_set(&key3,1,3); cps_api_key_set(&key3,2,1); cps_api_key_set_len(&key3,3); ASSERT_TRUE(cps_api_key_matches(&key,&key3,true)!=0); cps_api_key_set_len(&key3,1); ASSERT_TRUE(cps_api_key_matches(&key,&key3,false)==0); cps_api_key_set_len(&key3,2); ASSERT_TRUE(cps_api_key_matches(&key,&key3,false)==0); cps_api_key_set(&key2,1,3); ASSERT_TRUE(cps_api_key_matches(&key,&key2,true)==0); printf("Key 1 %s, Key 2 %s\n",cps_api_key_print(&key,buff1,sizeof(buff1)), cps_api_key_print(&key2,buff2,sizeof(buff2))); cps_api_key_set_len(&key2,2); cps_api_key_set(&key2,2,4); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)==0); printf("Key 1 %s, Key 2 %s\n",cps_api_key_print(&key,buff1,sizeof(buff1)), cps_api_key_print(&key2,buff2,sizeof(buff2))); ASSERT_TRUE(cps_api_key_matches(&key2,&key,false)!=0); cps_api_key_set(&key2,2,2); cps_api_key_set(&key,2,0); ASSERT_TRUE(cps_api_key_matches(&key,&key2,false)==0); printf("Key 1 %s, Key 2 %s\n",cps_api_key_print(&key,buff1,sizeof(buff1)), cps_api_key_print(&key2,buff2,sizeof(buff2))); memset(&key2,0,sizeof(key2)); cps_api_key_copy(&key2,&key); ASSERT_TRUE(cps_api_key_matches(&key,&key2,true)==0); printf("Final\nKey 1 %s, Key 2 %s\n",cps_api_key_print(&key,buff1,sizeof(buff1)), cps_api_key_print(&key2,buff2,sizeof(buff2))); }
static void _make_key(_key_t &ek, const cps_api_key_t *ck) { cps_api_key_copy(_int_key_to_cps_key(ek),(cps_api_key_t *)ck); }