DEF_TEST(Data, reporter) { const char* str = "We the people, in order to form a more perfect union."; const int N = 10; SkAutoTUnref<SkData> r0(SkData::NewEmpty()); SkAutoTUnref<SkData> r1(SkData::NewWithCopy(str, strlen(str))); SkAutoTUnref<SkData> r2(SkData::NewWithProc(new int[N], N*sizeof(int), delete_int_proc, gGlobal)); SkAutoTUnref<SkData> r3(SkData::NewSubset(r1, 7, 6)); assert_len(reporter, r0, 0); assert_len(reporter, r1, strlen(str)); assert_len(reporter, r2, N * sizeof(int)); assert_len(reporter, r3, 6); assert_data(reporter, r1, str, strlen(str)); assert_data(reporter, r3, "people", 6); SkData* tmp = SkData::NewSubset(r1, strlen(str), 10); assert_len(reporter, tmp, 0); tmp->unref(); tmp = SkData::NewSubset(r1, 0, 0); assert_len(reporter, tmp, 0); tmp->unref(); test_cstring(reporter); test_files(reporter); }
void TestDataRef(skiatest::Reporter* reporter) { const char* str = "We the people, in order to form a more perfect union."; const int N = 10; SkData* r0 = SkData::NewEmpty(); SkData* r1 = SkData::NewWithCopy(str, strlen(str)); SkData* r2 = SkData::NewWithProc(new int[N], N*sizeof(int), delete_int_proc, gGlobal); SkData* r3 = SkData::NewSubset(r1, 7, 6); SkAutoUnref aur0(r0); SkAutoUnref aur1(r1); SkAutoUnref aur2(r2); SkAutoUnref aur3(r3); assert_len(reporter, r0, 0); assert_len(reporter, r1, strlen(str)); assert_len(reporter, r2, N * sizeof(int)); assert_len(reporter, r3, 6); assert_data(reporter, r1, str, strlen(str)); assert_data(reporter, r3, "people", 6); SkData* tmp = SkData::NewSubset(r1, strlen(str), 10); assert_len(reporter, tmp, 0); tmp->unref(); tmp = SkData::NewSubset(r1, 0, 0); assert_len(reporter, tmp, 0); tmp->unref(); }
void Nhdc12832::refresh(void){ Spi spi(spi_port); uint8_t buffer[MEM_ROWS]; unsigned int i,j; unsigned char page = 0xB0; //Page Address + 0xB0 //cmd_out(0xAE); //Display OFF cmd_out(0x40); //Display start address + 0x40 for(i=0;i<MEM_COLUMNS;i++){ //32pixel display / 8 pixels per page = 4 pages assert_cmd(); buffer[0] = page; //send page address buffer[1] = 0x10; //column address upper 4 bits + 0x10 buffer[2] = 0x00; //column address lower 4 bits + 0x00 assert_cs(); spi.write(buffer, 3); deassert_cs(); for(j=0;j<MEM_ROWS;j++){ //128 rows wide buffer[j] = nhd_mem[j][i]; } assert_data(); assert_cs(); spi.write(buffer, MEM_ROWS); deassert_cs(); page++; //after 128 columns, go to next page } cmd_out(0xAF); //Display ON }
void Nhdc12832::data_out(unsigned char c){ Spi spi(spi_port); assert_data(); assert_cs(); spi.swap(c); deassert_cs(); }
void Nhdc12832::data_out(const void * data, int nbyte){ Spi spi(spi_port); int i; const char * p = (const char*)data; assert_data(); for(i=0; i < nbyte; i++){ assert_cs(); spi.swap(*p++); deassert_cs(); } }
TEST_END TEST_BEGIN(test_seq_simple) { data_t data; seq_data_t seq; memset(&seq, 0, sizeof(seq)); for (int i = 0; i < 1000 * 1000; i++) { set_data(&data, i); seq_store_data(&seq, &data); set_data(&data, 0); bool success = seq_try_load_data(&data, &seq); assert_b_eq(success, true, "Failed non-racing read"); assert_data(&data); } }
static void * seq_reader_thd(void *arg) { thd_data_t *thd_data = (thd_data_t *)arg; int iter = 0; data_t local_data; while (iter < 1000 * 1000 - 1) { bool success = seq_try_load_data(&local_data, &thd_data->data); if (success) { assert_data(&local_data); assert_d_le(iter, local_data.arr[0], "Seq read went back in time."); iter = local_data.arr[0]; } } return NULL; }
int main(SIPE_UNUSED_PARAMETER int argc, SIPE_UNUSED_PARAMETER char **argv) { sipe_xml *xml; const sipe_xml *child1, *child2; #if 0 /* * No idea why the memory leak checks work on some platforms * but fail on others :-( Disable for now... */ g_mem_set_vtable(&memory_leak_check); #else (void) memory_leak_check; #endif /* empty XML */ xml = assert_parse(NULL, FALSE); assert_stringify(xml, 1, NULL); sipe_xml_free(xml); xml = assert_parse("", FALSE); sipe_xml_free(xml); xml = assert_parse("<?xml version=\"1.0\" ?>", FALSE); sipe_xml_free(xml); /* one node */ xml = assert_parse("<test></test>", TRUE); assert_name(xml, "test"); assert_data(xml, NULL); assert_stringify(xml, 1, "<test/>"); sipe_xml_free(xml); xml = assert_parse("<test/>", TRUE); assert_name(xml, "test"); assert_data(xml, NULL); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test>a</test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test>a\nb</test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a\nb"); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); /* child node */ xml = assert_parse("<test>a<child>b</child></test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); child1 = assert_child(xml, NULL, FALSE); child1 = assert_child(xml, "child", TRUE); assert_name(child1, "child"); assert_data(child1, "b"); child1 = assert_child(xml, "shouldnotmatch", FALSE); assert_data(child1, NULL); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test>a<child/></test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); child1 = assert_child(xml, "child", TRUE); assert_name(child1, "child"); assert_data(child1, NULL); child1 = assert_child(xml, "shouldnotmatch", FALSE); assert_data(child1, NULL); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test>a<child>b<inner>c</inner></child></test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); child1 = assert_child(xml, "child", TRUE); assert_name(child1, "child"); assert_data(child1, "b"); child1 = assert_child(child1, "inner", TRUE); assert_name(child1, "inner"); assert_data(child1, "c"); child1 = assert_child(xml, "child/inner", TRUE); assert_name(child1, "inner"); assert_data(child1, "c"); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test>a<child>b<inner>c<innerinner>d</innerinner></inner></child></test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); child1 = assert_child(xml, "child", TRUE); assert_name(child1, "child"); assert_data(child1, "b"); child2 = assert_child(child1, "inner/innerinner", TRUE); assert_name(child2, "innerinner"); assert_data(child2, "d"); child1 = assert_child(child1, "inner", TRUE); assert_name(child1, "inner"); assert_data(child1, "c"); child1 = assert_child(child1, "innerinner", TRUE); assert_name(child1, "innerinner"); assert_data(child1, "d"); child1 = assert_child(xml, "child/inner", TRUE); assert_name(child1, "inner"); assert_data(child1, "c"); child1 = assert_child(xml, "child/inner/innerinner", TRUE); assert_name(child1, "innerinner"); assert_data(child1, "d"); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); /* attributes */ xml = assert_parse("<test a=\"\">a</test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); assert_attribute(xml, NULL, NULL); assert_attribute(xml, "a", ""); assert_attribute(xml, "b", NULL); assert_stringify(xml, 1, teststring); sipe_xml_free(xml); xml = assert_parse("<test a=\"1\" b=\"abc\">a</test>", TRUE); assert_name(xml, "test"); assert_data(xml, "a"); assert_attribute(xml, "a", "1"); assert_int_attribute(xml, "a", 1, 0); assert_attribute(xml, "b", "abc"); assert_attribute(xml, "c", NULL); assert_int_attribute(xml, "d", 100, 200); /* the attribute order depends on glib hashing :-( */ assert_stringify(xml, 2, teststring, "<test b=\"abc\" a=\"1\">a</test>"); sipe_xml_free(xml); /* attributes with namespace */ xml = assert_parse("<m:row m:uri=\"sip:\" m:displayName=\"X\" m:title=\"Y\" m:office=\"Z\" m:phone=\"0\" m:company=\"A\" m:city=\"B\" m:state=\"C\" m:country=\"D\" m:email=\"E\" />", TRUE); assert_name(xml, "row"); assert_data(xml, NULL); assert_attribute(xml, "uri", "sip:"); assert_attribute(xml, "displayName", "X"); assert_attribute(xml, "title", "Y"); assert_attribute(xml, "office", "Z"); assert_attribute(xml, "phone", "0"); assert_attribute(xml, "company", "A"); assert_attribute(xml, "city", "B"); assert_attribute(xml, "state", "C"); assert_attribute(xml, "country", "D"); assert_attribute(xml, "email", "E"); sipe_xml_free(xml); xml = assert_parse("<state xsi:type=\"aggregateState\" lastActive=\"date\" xmlns:xsi=\"http://one\" xmlns=\"http://two\"><availability>15500</availability></state>", TRUE); assert_name(xml, "state"); assert_data(xml, NULL); assert_attribute(xml, "type", "aggregateState"); assert_attribute(xml, "lastActive", "date"); assert_attribute(xml, "xsi", "http://one"); assert_attribute(xml, "xmlns", "http://two"); child1 = assert_child(xml, "availability", TRUE); assert_name(child1, "availability"); assert_data(child1, "15500"); sipe_xml_free(xml); /* broken XML */ xml = assert_parse("t", FALSE); sipe_xml_free(xml); xml = assert_parse("<>", FALSE); sipe_xml_free(xml); xml = assert_parse("<></>", FALSE); sipe_xml_free(xml); xml = assert_parse("<test>", FALSE); sipe_xml_free(xml); xml = assert_parse("<a a=\"1\" a=\"2\"></a>", FALSE); sipe_xml_free(xml); if (allocated) { printf("MEMORY LEAK: %" G_GSIZE_FORMAT " still allocated\n", allocated); failed++; } else { printf("MEMORY LEAK CHECK OK\n"); succeeded++; } printf("Result: %d PASSED %d FAILED\n", succeeded, failed); return(failed); }