}END_TESTF // div ノーマル BEGIN_TESTF(r5900_special_div_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_t0.d[0] = 0x00000045; g_cpu->m_s0.d[0] = 0x00000020; // 被除数が正・除数が正 > 商が正・余が正 g_cpu->m_t1.d[0] = 0xfffffffd; g_cpu->m_s1.d[0] = 0x00000002; // 被除数が負・除数が正 > 商が負・余が負 g_cpu->m_t2.d[0] = 0xfffffffd; g_cpu->m_s2.d[0] = 0xfffffffe; // 被除数が負・除数が負 > 商が正・余が負 g_cpu->m_t3.d[0] = 0x00000003; g_cpu->m_s3.d[0] = 0xfffffffe; // 被除数が正・除数が負 > 商が負・余が正 g_cpu->m_t4.d[0] = 0x00001234; g_cpu->m_s4.d[0] = 0x00000000; // 0除算 g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x00000000 && g_cpu->m_s0.d[0] == 0x00000005); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00000000 && g_cpu->m_t0.d[0] == 0x00000002); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0xffffffff && g_cpu->m_s1.d[0] == 0xffffffff); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0xffffffff && g_cpu->m_t1.d[0] == 0xffffffff); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0xffffffff && g_cpu->m_s2.d[0] == 0xffffffff); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x00000001); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0x00000000 && g_cpu->m_s3.d[0] == 0x00000001); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xffffffff && g_cpu->m_t3.d[0] == 0xffffffff); // lo 商 // 0除算はhi, loが変化しないので前回の演算結果と同じものが格納される。念のためチェック WIN_ASSERT_TRUE(g_cpu->m_s4.d[1] == 0x00000000 && g_cpu->m_s4.d[0] == 0x00000001); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0xffffffff && g_cpu->m_t4.d[0] == 0xffffffff); // lo 商 } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // multu ノーマル BEGIN_TESTF(r5900_special_multu_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_a0.d[0] = 0x00000020; g_cpu->m_t0.d[0] = 0x00000045; g_cpu->m_a1.d[0] = 0xffffffff; g_cpu->m_t1.d[0] = 0x00000002; g_cpu->m_a2.d[0] = 0x7fffffff; g_cpu->m_t2.d[0] = 0x7fffffff; g_cpu->m_a3.d[0] = 0x80000000; g_cpu->m_t3.d[0] = 0x7fffffff; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x00000000 && g_cpu->m_a0.d[0] == 0x00000000); // hi WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x00000000 && g_cpu->m_s0.d[0] == 0x000008a0); // lo WIN_ASSERT_TRUE(g_cpu->m_a1.d[1] == 0x00000000 && g_cpu->m_a1.d[0] == 0x00000001); // hi WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0xffffffff && g_cpu->m_s1.d[0] == 0xfffffffe); // lo WIN_ASSERT_TRUE(g_cpu->m_a2.d[1] == 0x00000000 && g_cpu->m_a2.d[0] == 0x3fffffff); // hi WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0x00000000 && g_cpu->m_s2.d[0] == 0x00000001); // lo WIN_ASSERT_TRUE(g_cpu->m_v0.d[1] == g_cpu->m_s2.d[1] && g_cpu->m_v0.d[0] == g_cpu->m_s2.d[0]); WIN_ASSERT_TRUE(g_cpu->m_a3.d[1] == 0x00000000 && g_cpu->m_a3.d[0] == 0x3fffffff); // hi WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0xffffffff && g_cpu->m_s3.d[0] == 0x80000000); // lo WIN_ASSERT_TRUE(g_cpu->m_v1.d[1] == g_cpu->m_s3.d[1] && g_cpu->m_v1.d[0] == g_cpu->m_s3.d[0]); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // dsllv ノーマル BEGIN_TESTF(r5900_special_dsllv_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_v0.d[1] = 0x01234567; g_cpu->m_v0.d[0] = 0x89abcdef; g_cpu->m_s0.d[0] = 0xff000000; g_cpu->m_s1.d[0] = 0xff000001; g_cpu->m_s2.d[0] = 0xffff0010; g_cpu->m_s3.d[0] = 0xffff001f; g_cpu->m_s4.d[0] = 0xff000020; g_cpu->m_s5.d[0] = 0xff000021; g_cpu->m_s6.d[0] = 0xffff003f; g_cpu->m_s7.d[0] = 0xffff0040; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x01234567 && g_cpu->m_t0.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x02468acf && g_cpu->m_t1.d[0] == 0x13579bde); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x456789ab && g_cpu->m_t2.d[0] == 0xcdef0000); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xc4d5e6f7 && g_cpu->m_t3.d[0] == 0x80000000); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x89abcdef && g_cpu->m_t4.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x13579bde && g_cpu->m_t5.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0x80000000 && g_cpu->m_t6.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0x01234567 && g_cpu->m_t7.d[0] == 0x89abcdef); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // dsrav ノーマル BEGIN_TESTF(r5900_special_dsrav_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_v0.d[1] = 0x01234567; g_cpu->m_v0.d[0] = 0x89abcdef; g_cpu->m_v1.d[1] = 0x81234567; g_cpu->m_v1.d[0] = 0x09abcdef; g_cpu->m_s0.d[0] = 0xff000000; g_cpu->m_s1.d[0] = 0xff000001; g_cpu->m_s2.d[0] = 0xff000022; g_cpu->m_s3.d[0] = 0xffff0040; g_cpu->m_s4.d[0] = 0xff000000; g_cpu->m_s5.d[0] = 0xff000001; g_cpu->m_s6.d[0] = 0xff000022; g_cpu->m_s7.d[0] = 0xffff0040; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x01234567 && g_cpu->m_t0.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x0091a2b3 && g_cpu->m_t1.d[0] == 0xc4d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x0048d159); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x01234567 && g_cpu->m_t3.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x81234567 && g_cpu->m_t4.d[0] == 0x09abcdef); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0xc091a2b3 && g_cpu->m_t5.d[0] == 0x84d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0xffffffff && g_cpu->m_t6.d[0] == 0xe048d159); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0x81234567 && g_cpu->m_t7.d[0] == 0x09abcdef); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // movz movn ノーマル BEGIN_TESTF(r5900_special_movz_movn_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_s0.d[1] = 0x12345678; g_cpu->m_s0.d[0] = 0x9abcdef0; g_cpu->m_s1.d[1] = 0x56789abc; g_cpu->m_s1.d[0] = 0xdef01234; g_cpu->m_s2.d[1] = 0xaaaabbbb; g_cpu->m_s2.d[0] = 0xccccdddd; g_cpu->m_s3.d[1] = 0x11112222; g_cpu->m_s3.d[0] = 0x33334444; g_cpu->m_t0.d[1] = 0x00000000; g_cpu->m_t0.d[0] = 0x00000000; g_cpu->m_t1.d[1] = 0x00001000; g_cpu->m_t1.d[0] = 0x00000000; g_cpu->m_t2.d[1] = 0x00000000; g_cpu->m_t2.d[0] = 0x00001000; g_cpu->m_t3.d[1] = 0x00001000; g_cpu->m_t3.d[0] = 0x00001000; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x12345678 && g_cpu->m_a0.d[0] == 0x9abcdef0); WIN_ASSERT_TRUE(g_cpu->m_a1.d[1] == 0xcccccccc && g_cpu->m_a1.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_a2.d[1] == 0xcccccccc && g_cpu->m_a2.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_a3.d[1] == 0xcccccccc && g_cpu->m_a3.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0xcccccccc && g_cpu->m_t4.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x56789abc && g_cpu->m_t5.d[0] == 0xdef01234); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0xaaaabbbb && g_cpu->m_t6.d[0] == 0xccccdddd); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0x11112222 && g_cpu->m_t7.d[0] == 0x33334444); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
// jr jalr ノーマル BEGIN_TESTF(r5900_special_jr_jalr_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t1.d[0] == 0x00000002); WIN_ASSERT_TRUE(g_cpu->m_t2.d[0] == 0x00000004); WIN_ASSERT_TRUE(g_cpu->m_t3.d[0] == 0x00000008); WIN_ASSERT_TRUE(g_cpu->m_at.d[1] == g_cpu->m_ra.d[1] && g_cpu->m_at.d[0] == g_cpu->m_ra.d[0]); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // dsrl ノーマル BEGIN_TESTF(r5900_special_dsrl_001, r5900_special_fix_01){ try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_a0.d[1] = 0x01234567; g_cpu->m_a0.d[0] = 0x89abcdef; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x01234567 && g_cpu->m_t0.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x0091a2b3 && g_cpu->m_t1.d[0] == 0xc4d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x02468acf); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000123 && g_cpu->m_t3.d[0] == 0x456789ab); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x0091a2b3 && g_cpu->m_a0.d[0] == 0xc4d5e6f7); // srcとdstが同じケース } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
END_TEST BEGIN_TEST(viewInsideRegion1) { Region r1 = Region(1,2,3,4); r1. v.addRegion(r1); WIN_ASSERT_TRUE(v.clickableRegions.get(r1).isInsideRegion(2,3)); }
}END_TESTF // dsll32 ノーマル BEGIN_TESTF(r5900_special_dsll32_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_a0.d[1] = 0x01234567; g_cpu->m_a0.d[0] = 0x89abcdef; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x89abcdef && g_cpu->m_t0.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x13579bde && g_cpu->m_t1.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x80000000 && g_cpu->m_t2.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xcdef0000 && g_cpu->m_t3.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x13579bde && g_cpu->m_a0.d[0] == 0x00000000); // srcとdstが同じケース } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // maddu1 ノーマル BEGIN_TESTF(r5900_mmi_maddu1_001, r5900_mmi_fix_01){ try { OPEN_ELF("mmi"); INIT_GPR(0xcccccccc); g_cpu->m_hi.d[3] = g_cpu->m_hi.d[2] = g_cpu->m_hi.d[1] = g_cpu->m_hi.d[0] = 0xcccccccc; g_cpu->m_lo.d[3] = g_cpu->m_lo.d[2] = g_cpu->m_lo.d[1] = g_cpu->m_lo.d[0] = 0xcccccccc; // (a3|a2)=(a3|a2) + a0 * a1 乗算結果の下位Wordが負数(オーバーフロー) g_cpu->m_a0.d[0] = 0x11000020; g_cpu->m_a1.d[0] = 0x00000045; g_cpu->m_a2.d[0] = 0x00000001; g_cpu->m_a3.d[0] = 0x00000002; // (t3|t2)=(t3|t2) + t0 * t1 乗算結果が負数 g_cpu->m_t0.d[0] = 0xffffffff; g_cpu->m_t1.d[0] = 0x00000045; g_cpu->m_t2.d[0] = 0x00000001; g_cpu->m_t3.d[0] = 0x00000002; // (t7|t6)=(t7|t6) + t4 * t5 下位Wordの加算にてキャリー発生するケース g_cpu->m_t4.d[0] = 0x0000ffff; g_cpu->m_t5.d[0] = 0x0001ffff; g_cpu->m_t6.d[0] = 0x00100000; g_cpu->m_t7.d[0] = 0x00000010; // (s3|s2)=(s3|s2) + s0 * s1 上位Wordの結果が負数 g_cpu->m_s0.d[0] = 0x80000000; g_cpu->m_s1.d[0] = 0x7fffffff; g_cpu->m_s2.d[0] = 0x00000001; g_cpu->m_s3.d[0] = 0x40000001; // (hi|lo)=(s7|s6) + s4 * s5 2オペランド g_cpu->m_s4.d[0] = 0x0000ffff; g_cpu->m_s5.d[0] = 0x0001ffff; g_cpu->m_s6.d[0] = 0x00100000; g_cpu->m_s7.d[0] = 0x00000010; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_a3.d[1] == 0x00000000 && g_cpu->m_a3.d[0] == 0x00000006); // hi WIN_ASSERT_TRUE(g_cpu->m_a2.d[1] == 0xffffffff && g_cpu->m_a2.d[0] == 0x950008a1); // lo WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000000 && g_cpu->m_t3.d[0] == 0x00000046); // hi WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0xffffffff && g_cpu->m_t2.d[0] == 0xffffffbc); // lo WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0x00000000 && g_cpu->m_t7.d[0] == 0x00000012); // hi WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0x00000000 && g_cpu->m_t6.d[0] == 0x000d0001); // lo WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0xffffffff && g_cpu->m_s3.d[0] == 0x80000000); // hi WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0xffffffff && g_cpu->m_s2.d[0] == 0x80000001); // lo WIN_ASSERT_TRUE(g_cpu->m_hi.d[3] == 0x00000000 && g_cpu->m_hi.d[2] == 0x00000012); // hi WIN_ASSERT_TRUE(g_cpu->m_lo.d[3] == 0x00000000 && g_cpu->m_lo.d[2] == 0x000d0001); // lo } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
END_TEST BEGIN_TEST(ItemTestIsInteractable0) { i1.addInteractableItem(i2); i1.addInteractableItem(i3); i2.addInteractableItem(i1); i2.addInteractableItem(i4); i3.addInteractableItem(i1); i4.addInteractableItem(i2); WIN_ASSERT_TRUE(i1.canInteractWithItem(i2)); }
// mflo1 mfhi1 mtlo1 mthi1 ノーマル BEGIN_TESTF(r5900_mmi_mflo1_mfhi1_mtlo1_mthi1_001, r5900_mmi_fix_01){ try { OPEN_ELF("mmi"); INIT_GPR(0xcccccccc); g_cpu->m_hi.d[3] = g_cpu->m_hi.d[2] = g_cpu->m_hi.d[1] = g_cpu->m_hi.d[0] = 0xcccccccc; g_cpu->m_lo.d[3] = g_cpu->m_lo.d[2] = g_cpu->m_lo.d[1] = g_cpu->m_lo.d[0] = 0xcccccccc; g_cpu->m_hi.d[1] = 0xffffffff; g_cpu->m_hi.d[0] = 0xffffffff; g_cpu->m_lo.d[1] = 0xffffffff; g_cpu->m_lo.d[0] = 0xffffffff; g_cpu->m_a0.d[1] = 0x12345678; g_cpu->m_a0.d[0] = 0x9abcdef0; g_cpu->m_a1.d[1] = 0x56789abc; g_cpu->m_a1.d[0] = 0xdef01234; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x12345678 && g_cpu->m_s0.d[0] == 0x9abcdef0); WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0x56789abc && g_cpu->m_s1.d[0] == 0xdef01234); WIN_ASSERT_TRUE(g_cpu->m_hi.d[3] == g_cpu->m_s0.d[1] && g_cpu->m_hi.d[2] == g_cpu->m_s0.d[0]); WIN_ASSERT_TRUE(g_cpu->m_lo.d[3] == g_cpu->m_s1.d[1] && g_cpu->m_lo.d[2] == g_cpu->m_s1.d[0]); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // subu ノーマル&オーバーフロー&符号拡張 BEGIN_TESTF(r5900_special_subu_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_a0.d[0] = 0x00003fff; g_cpu->m_s0.d[0] = 0xfffffdde; // 結果正 (ゼロ拡張) g_cpu->m_a1.d[0] = 0x7fffffff; g_cpu->m_s1.d[0] = 0xfffffffe; // +側オーバーフロー g_cpu->m_a2.d[0] = 0x00000000; g_cpu->m_s2.d[0] = 0x7fffffff; // 結果負 (符号拡張) g_cpu->m_a3.d[0] = 0x80000001; g_cpu->m_s3.d[0] = 0x00000002; // -側オーバーフロー g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00000000 && g_cpu->m_t0.d[0] == 0x00004221); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0xffffffff && g_cpu->m_t1.d[0] == 0x80000001); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0xffffffff && g_cpu->m_t2.d[0] == 0x80000001); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000000 && g_cpu->m_t3.d[0] == 0x7fffffff); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x00000000 && g_cpu->m_a0.d[0] == 0x00003ffd); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
END_TEST /** * The test must be executed with an already installed Outlook client */ BEGIN_TEST(WinContactPhotoIsTheSame) { int ret = 0; SyncItem* item = NULL; WCHAR* internalKey = NULL; wstring propValue; WindowsSyncSource* ss = createContactWindowsSyncSource(); WIN_ASSERT_NOT_NULL(ss, TEXT("The syncSource is null.")); StringBuffer VCard; VCard.append("BEGIN:VCARD\r\n"); VCard.append("VERSION:2.1\r\n"); VCard.append("N:Paperino;Paolino;Middle;Mr.;suffix\r\n"); VCard.append("BDAY:20100901\r\n"); VCard.append("NOTE:\r\n"); VCard.append("TEL;WORK;FAX:4444444444\r\n"); VCard.append("TEL;VOICE;WORK:22222222222\r\n"); VCard.append("TEL;VOICE;WORK:333333333333\r\n"); VCard.append("TEL;CAR;VOICE:66666666666\r\n"); VCard.append("CATEGORIES:\r\n"); VCard.append("TEL;WORK;PREF:777777777777\r\n"); VCard.append("FN:Paperino, Paolino Middle\r\n"); VCard.append("EMAIL;INTERNET:[email protected]\r\n"); VCard.append("EMAIL;INTERNET;HOME:[email protected]\r\n"); VCard.append("EMAIL;INTERNET;WORK:[email protected]\r\n"); VCard.append("TITLE:JobTitle\r\n"); VCard.append("TEL;VOICE;HOME:8888888888888\r\n"); VCard.append("TEL;VOICE;HOME:999999999999\r\n"); VCard.append("TEL;HOME;FAX:000000000\r\n"); VCard.append("URL;HOME:\r\n"); VCard.append("TEL;CELL:1212121212121\r\n"); VCard.append("NICKNAME:nickname\r\n"); VCard.append("TEL;FAX:14141414141\r\n"); VCard.append("TEL;VOICE:131313131313\r\n"); VCard.append("TEL;PAGER:151515151\r\n"); VCard.append("TEL;PREF;VOICE:16161616161\r\n"); VCard.append("ROLE:profession\r\n"); VCard.append("URL:www.web.com\r\n"); VCard.append("ORG:Company;department;office\r\n"); VCard.append("ADR;HOME:;;Via Riviera 55;pavia;pv;27100;Italy\r\n"); VCard.append("ADR:;;Via Naples 23;milano;mi;3993;Italy\r\n"); VCard.append("ADR;WORK:;;Via Roma;New york;NY;20111;Italy\r\n"); VCard.append(" /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQY\r\n"); VCard.append(" GBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYa\r\n"); VCard.append(" KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAAR\r\n"); VCard.append(" CAA2AEgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA\r\n"); VCard.append(" AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK\r\n"); VCard.append(" FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG\r\n"); VCard.append(" h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl\r\n"); VCard.append(" 5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA\r\n"); VCard.append(" AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk\r\n"); VCard.append(" NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE\r\n"); VCard.append(" hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk\r\n"); VCard.append(" 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCfxl4r1qy8S69Aut61bW9vqMysHmlCRxu7\r\n"); VCard.append(" BSrKeFHbsBjpivOm8d+KAQreJtdSVE8uRW1CbnGSJFGemB+tbXxIef8A4THxCDaXAjF/dees\r\n"); VCard.append(" t1tjuYhMxG0Z4xXnN9dwNAkTTJIAodFlRi6jkbAfoc14+HUuaTu3r/X9Py6n0s3FQjdJaLdW\r\n"); VCard.append(" v99vw8007pnZaf418TSW0lxceK9eUjaVRb6U9eSuN3pjmki8beKhOF/4SnWAQcfNqExAx1zg\r\n"); VCard.append(" +tcL9qMSxqc+WoABxt8zBwMep55zVyzlclwxJl+6Y2kC/MTnp3rrcZK7uYQ5FJJr+v8AhtvT\r\n"); VCard.append(" RbHoFn4z8Qmf7NL4p1tVbBybyRmLHsDngZ7VqP4p8SxHYfEOsEoNzn7bIck9FHzVx8Yit7SL\r\n"); VCard.append(" M8Ksko3nAZ93XgDqK1IyWRbi4iaNC2Y1I+82eGPevLrTle6bsfTYKEGuWpFX7WX9fgj0f4Z+\r\n"); VCard.append(" JvEUt4H1PWLtrQnGLudmLk9hk9q91tpJpFBM0hyP7xr5d8MTeVqcVzK4Yq3yjzAQzemK+gdD\r\n"); VCard.append(" 1rdax+YArY5Gc0YfFqM3GbPJzvDLn5qaXyRuam1wIG8ueVTjqrkUVXudQR4D0NFTipxlO6kz\r\n"); VCard.append(" yKMZRjZo+WvippZi8c+JmW1VojcTytLdTEj5nJJQdsE4xXBXxaaCZ/tE5DwxmIvags4UjO0j\r\n"); VCard.append(" oB616f43uGfxX4kgtrW5ucalcfajcSfucea2wY9B1Fcrb6LfraahdWs4lkgk+zs6yARpCwyy\r\n"); VCard.append(" qOua0jX9m37R6p/13td/gep7HmpLk6r9H2tffzfmcdNZt5rSIXO9TLBJcDHnJ0IUdM5rRsra\r\n"); VCard.append(" Ozk+z3Bt4wrhBBeptYbh1LD0qe408vYs9nZSXdhM4jiTBae2VTyfYHnH0rRsoEk3ix1KKW3N\r\n"); VCard.append(" zGyJqEW5gMdc+ma6Z17x3/r8bf1YzpUXz2S/p3+9PTXW6tcdpVu0LL9k/siEnMRl3FiW9Rxk\r\n"); VCard.append(" H0NbMiAW28CSWVsh5X65H931qIfZ7JmkkTSkZZyCYY9xX8PQ1oWn+mlfJikmbcWAb5Vj+ntX\r\n"); VCard.append(" l1qjb5+n9dT6DCwVFa6eX/AsjS8MbIriF7i3jRzgRsyEkfX0r2rSbLzbdCWRmxztrhPDOm2U\r\n"); VCard.append(" yhZoZI7t1w+GO0H2rfFvq2hvvtibi367T1FdGCnCrHmWp5+Omq0rRdn5nWNpDMuASPoaKqaR\r\n"); VCard.append(" 4rgmwlwDFJ3Vxiiu7kpvc8Wf1iDs0eA/EMMvjTXZb65kNs+pzq1vFxuVZGxn9K5qNvJSIXu+\r\n"); VCard.append(" DTZBJNDHGfmJ7Z716r460xpte1u6KIu28lC7x/DvOT+NcI2kXUrtdxx+bDGhTa3Rc+lcDqxb\r\n"); VCard.append(" l2Tt218vPzPYpwXs1UjLay/K9328kUI9X1HTrm8acGKWdIpIxF91VxjJH40+U3Mas1pcW062\r\n"); VCard.append(" bY5XDMj8nP0P8q0zp8ttfSK7ec4gCHcP4SOlX38LfZ7dJ4Y1+WMEn+9+FYynSi4tpJy28+nr\r\n"); VCard.append(" tp8zoVNpqMpb3afXv6f8BGRFFPE2w2tnOEjwzIOSp5/MV19hokl3psN1bOHwmJI06g0umaEl\r\n"); VCard.append(" 9BHPbRgMRtkUcV13hq2TS5mjePaH4J9az9lOp70d4vVF1a3IrxfvL0Mu0uHtliVt8ciDAY9f\r\n"); VCard.append(" xrttC1qO5QRXON386XU9Dh1C33KAGxwwrjbizu9Mnw6ttB4YV2fVuR89LR/gedy0sTdrSR6P\r\n"); VCard.append(" PolpdjeEUk98UVh+GdfLFYZzg9j60V0xrRt76szz6ixFKXKmc349zNq17HnG+7kB+gY0+Cwj\r\n"); VCard.append(" t9EWNAP3h5OKKK4cVBLAysuv6nYm44KFjMnsEGtIGwQVCn3Fbt1pccKrCrHZ5fGaKKzx0I+x\r\n"); VCard.append(" oytqmjbEzkvZ2ZmeGv8ARL+SEcrursrqySWLfwDiiiu+OlZ27E4ttVE0P0K9dJTbv8wHQ1t3\r\n"); VCard.append(" enw3MeWUc+tFFdrSaPNxPuVLx0OcvdHht2LxYUj0ooorwsVJqpodMJykk2z/2Q==\r\n"); VCard.append("\r\n"); VCard.append("X-ANNIVERSARY:20100902\r\n"); VCard.append("X-FUNAMBOL-BILLINGINFO:\r\n"); VCard.append("TEL;X-FUNAMBOL-CALLBACK:5555555555\r\n"); VCard.append("X-FUNAMBOL-CHILDREN:\r\n"); VCard.append("X-FUNAMBOL-COMPANIES:\r\n"); VCard.append("X-FUNAMBOL-FOLDER:DEFAULT_FOLDER\r\n"); VCard.append("X-FUNAMBOL-HOBBIES:\r\n"); VCard.append("EMAIL;INTERNET;HOME;X-FUNAMBOL-INSTANTMESSENGER:IMaddress\r\n"); VCard.append("X-FUNAMBOL-INITIALS:P.M.P.\r\n"); VCard.append("X-FUNAMBOL-LANGUAGES:\r\n"); VCard.append("X-MANAGER:managerName\r\n"); VCard.append("X-FUNAMBOL-MILEAGE:\r\n"); VCard.append("X-FUNAMBOL-ORGANIZATIONALID:\r\n"); VCard.append("TEL;X-FUNAMBOL-RADIO:1717171717\r\n"); VCard.append("X-SPOUSE:spuse\r\n"); VCard.append("X-FUNAMBOL-SUBJECT:Paolino Middle Paperino suffix\r\n"); VCard.append("TEL;X-FUNAMBOL-TELEX:1181818181818\r\n"); VCard.append("X-FUNAMBOL-YOMICOMPANYNAME:\r\n"); VCard.append("X-FUNAMBOL-YOMIFIRSTNAME:\r\n"); VCard.append("X-FUNAMBOL-YOMILASTNAME:\r\n"); VCard.append("END:VCARD"); item = new SyncItem(TEXT("GUID")); item->setData(VCard.c_str(), VCard.length()); // insert test item ret = ss->addItem(*item); WIN_ASSERT_EQUAL(ret, 201, TEXT("Adding item is not correct")); internalKey = (WCHAR*)item->getKey(); // // remove work and car tel number // VCard.reset(); VCard.append("BEGIN:VCARD\r\n"); VCard.append("VERSION:2.1\r\n"); VCard.append("N:Paperino;Paolino;Middle;Mr.;suffix\r\n"); VCard.append("PHOTO;ENCODING=b;TYPE=JPEG:\r\n"); VCard.append(" /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQY\r\n"); VCard.append(" GBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYa\r\n"); VCard.append(" KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAAR\r\n"); VCard.append(" CAA2AEgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA\r\n"); VCard.append(" AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK\r\n"); VCard.append(" FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG\r\n"); VCard.append(" h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl\r\n"); VCard.append(" 5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA\r\n"); VCard.append(" AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk\r\n"); VCard.append(" NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE\r\n"); VCard.append(" hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk\r\n"); VCard.append(" 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCfxl4r1qy8S69Aut61bW9vqMysHmlCRxu7\r\n"); VCard.append(" BSrKeFHbsBjpivOm8d+KAQreJtdSVE8uRW1CbnGSJFGemB+tbXxIef8A4THxCDaXAjF/dees\r\n"); VCard.append(" t1tjuYhMxG0Z4xXnN9dwNAkTTJIAodFlRi6jkbAfoc14+HUuaTu3r/X9Py6n0s3FQjdJaLdW\r\n"); VCard.append(" v99vw8007pnZaf418TSW0lxceK9eUjaVRb6U9eSuN3pjmki8beKhOF/4SnWAQcfNqExAx1zg\r\n"); VCard.append(" +tcL9qMSxqc+WoABxt8zBwMep55zVyzlclwxJl+6Y2kC/MTnp3rrcZK7uYQ5FJJr+v8AhtvT\r\n"); VCard.append(" RbHoFn4z8Qmf7NL4p1tVbBybyRmLHsDngZ7VqP4p8SxHYfEOsEoNzn7bIck9FHzVx8Yit7SL\r\n"); VCard.append(" M8Ksko3nAZ93XgDqK1IyWRbi4iaNC2Y1I+82eGPevLrTle6bsfTYKEGuWpFX7WX9fgj0f4Z+\r\n"); VCard.append(" JvEUt4H1PWLtrQnGLudmLk9hk9q91tpJpFBM0hyP7xr5d8MTeVqcVzK4Yq3yjzAQzemK+gdD\r\n"); VCard.append(" 1rdax+YArY5Gc0YfFqM3GbPJzvDLn5qaXyRuam1wIG8ueVTjqrkUVXudQR4D0NFTipxlO6kz\r\n"); VCard.append(" yKMZRjZo+WvippZi8c+JmW1VojcTytLdTEj5nJJQdsE4xXBXxaaCZ/tE5DwxmIvags4UjO0j\r\n"); VCard.append(" oB616f43uGfxX4kgtrW5ucalcfajcSfucea2wY9B1Fcrb6LfraahdWs4lkgk+zs6yARpCwyy\r\n"); VCard.append(" qOua0jX9m37R6p/13td/gep7HmpLk6r9H2tffzfmcdNZt5rSIXO9TLBJcDHnJ0IUdM5rRsra\r\n"); VCard.append(" Ozk+z3Bt4wrhBBeptYbh1LD0qe408vYs9nZSXdhM4jiTBae2VTyfYHnH0rRsoEk3ix1KKW3N\r\n"); VCard.append(" zGyJqEW5gMdc+ma6Z17x3/r8bf1YzpUXz2S/p3+9PTXW6tcdpVu0LL9k/siEnMRl3FiW9Rxk\r\n"); VCard.append(" H0NbMiAW28CSWVsh5X65H931qIfZ7JmkkTSkZZyCYY9xX8PQ1oWn+mlfJikmbcWAb5Vj+ntX\r\n"); VCard.append(" l1qjb5+n9dT6DCwVFa6eX/AsjS8MbIriF7i3jRzgRsyEkfX0r2rSbLzbdCWRmxztrhPDOm2U\r\n"); VCard.append(" yhZoZI7t1w+GO0H2rfFvq2hvvtibi367T1FdGCnCrHmWp5+Omq0rRdn5nWNpDMuASPoaKqaR\r\n"); VCard.append(" 4rgmwlwDFJ3Vxiiu7kpvc8Wf1iDs0eA/EMMvjTXZb65kNs+pzq1vFxuVZGxn9K5qNvJSIXu+\r\n"); VCard.append(" DTZBJNDHGfmJ7Z716r460xpte1u6KIu28lC7x/DvOT+NcI2kXUrtdxx+bDGhTa3Rc+lcDqxb\r\n"); VCard.append(" l2Tt218vPzPYpwXs1UjLay/K9328kUI9X1HTrm8acGKWdIpIxF91VxjJH40+U3Mas1pcW062\r\n"); VCard.append(" bY5XDMj8nP0P8q0zp8ttfSK7ec4gCHcP4SOlX38LfZ7dJ4Y1+WMEn+9+FYynSi4tpJy28+nr\r\n"); VCard.append(" tp8zoVNpqMpb3afXv6f8BGRFFPE2w2tnOEjwzIOSp5/MV19hokl3psN1bOHwmJI06g0umaEl\r\n"); VCard.append(" 9BHPbRgMRtkUcV13hq2TS5mjePaH4J9az9lOp70d4vVF1a3IrxfvL0Mu0uHtliVt8ciDAY9f\r\n"); VCard.append(" xrttC1qO5QRXON386XU9Dh1C33KAGxwwrjbizu9Mnw6ttB4YV2fVuR89LR/gedy0sTdrSR6P\r\n"); VCard.append(" PolpdjeEUk98UVh+GdfLFYZzg9j60V0xrRt76szz6ixFKXKmc349zNq17HnG+7kB+gY0+Cwj\r\n"); VCard.append(" t9EWNAP3h5OKKK4cVBLAysuv6nYm44KFjMnsEGtIGwQVCn3Fbt1pccKrCrHZ5fGaKKzx0I+x\r\n"); VCard.append(" oytqmjbEzkvZ2ZmeGv8ARL+SEcrursrqySWLfwDiiiu+OlZ27E4ttVE0P0K9dJTbv8wHQ1t3\r\n"); VCard.append(" enw3MeWUc+tFFdrSaPNxPuVLx0OcvdHht2LxYUj0ooorwsVJqpodMJykk2z/2Q==\r\n"); VCard.append("\r\n"); VCard.append("END:VCARD"); // update item item->setData(VCard.c_str(), VCard.length()); WinContact* winC = updateOutlookItem(ss, item); WIN_ASSERT_NOT_NULL(winC, TEXT("The item retrieved from the backend is null.")); // check some modifications winC->getProperty(L"Email1Address", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Email2Address is not null")); winC->getProperty(L"Email3Address", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Email3Address is not null")); winC->getProperty(L"Email2Address", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Email2Address is not null")); winC->getProperty(L"Birthday", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Birthday is not null")); winC->getProperty(L"OtherAddress", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The OtherAddress is not null")); winC->getProperty(L"MobileTelephoneNumber", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The MobileTelephoneNumber is not null")); winC->getProperty(L"Photo", propValue); WIN_ASSERT_TRUE(!propValue.empty(), TEXT("The BusinessAddress is not null")); delete winC; // // delete the test item // ret = ss->deleteItem(*item); WIN_ASSERT_EQUAL(ret, 200, TEXT("delete item is not correct")); delete item; }
END_TEST /** * The test must be executed with an already installed Outlook client */ BEGIN_TEST(WinContactRemoveEmail) { int ret = 0; SyncItem* item = NULL; WCHAR* internalKey = NULL; wstring propValue; WindowsSyncSource* ss = createContactWindowsSyncSource(); WIN_ASSERT_NOT_NULL(ss, TEXT("The syncSource is null.")); StringBuffer VCard; VCard.append("BEGIN:VCARD\r\n"); VCard.append("VERSION:2.1\r\n"); VCard.append("N:Paperino;Paolino;Middle;Mr.;suffix\r\n"); VCard.append("BDAY:20100901\r\n"); VCard.append("TEL;WORK;FAX:4444444444\r\n"); VCard.append("TEL;VOICE;WORK:22222222222\r\n"); VCard.append("TEL;VOICE;WORK:333333333333\r\n"); VCard.append("TEL;CAR;VOICE:66666666666\r\n"); VCard.append("EMAIL;INTERNET:[email protected]\r\n"); VCard.append("EMAIL;INTERNET;HOME:[email protected]\r\n"); VCard.append("EMAIL;INTERNET;WORK:[email protected]\r\n"); VCard.append("ADR;HOME:;;Via Riviera 55;pavia;pv;27100;Italy\r\n"); VCard.append("ADR:;;Via Naples 23;milano;mi;3993;Italy\r\n"); VCard.append("ADR;WORK:;;Via Roma;New york;NY;20111;Italy\r\n"); VCard.append("END:VCARD"); item = new SyncItem(TEXT("GUID")); item->setData(VCard.c_str(), VCard.length()); // insert test item ret = ss->addItem(*item); WIN_ASSERT_EQUAL(ret, 201, TEXT("Adding item is not correct")); internalKey = (WCHAR*)item->getKey(); // // remove work and car tel number // VCard.reset(); VCard.append("BEGIN:VCARD\r\n"); VCard.append("VERSION:2.1\r\n"); VCard.append("N:Paperino;Paolino;Middle;Mr.;suffix\r\n"); VCard.append("TEL;WORK;FAX:4444444444\r\n"); VCard.append("TEL;VOICE;WORK:22222222222\r\n"); VCard.append("TEL;VOICE;WORK:333333333333\r\n"); VCard.append("TEL;CAR;VOICE:66666666666\r\n"); VCard.append("EMAIL;INTERNET;HOME:[email protected]\r\n"); VCard.append("ADR;HOME:;;Via Riviera 55;pavia;pv;27100;Italy\r\n"); VCard.append("ADR;WORK:;;Via Roma;New york;NY;20111;Italy\r\n"); VCard.append("END:VCARD"); // update item item->setData(VCard.c_str(), VCard.length()); WinContact* winC = updateOutlookItem(ss, item); WIN_ASSERT_NOT_NULL(winC, TEXT("The item retrieved from the backend is null.")); // check modifications // Mapping is: // Email1Address <-> EMAIL;INTERNET: // Email2Address <-> EMAIL;INTERNET;HOME: // Email3Address <-> EMAIL;INTERNET;WORK: winC->getProperty(L"Email1Address", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Email2Address is not null")); winC->getProperty(L"Email3Address", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Email3Address is not null")); winC->getProperty(L"Birthday", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The Birthday is not null")); winC->getProperty(L"OtherAddress", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The OtherAddress is not null")); delete winC; // // remove one work tel number // VCard.reset(); VCard.reset(); VCard.append("BEGIN:VCARD\r\n"); VCard.append("VERSION:2.1\r\n"); VCard.append("N:Paperino;Paolino;Middle;Mr.;suffix\r\n"); VCard.append("TEL;WORK;FAX:4444444444\r\n"); VCard.append("TEL;VOICE;WORK:22222222222\r\n"); VCard.append("TEL;VOICE;WORK:333333333333\r\n"); VCard.append("TEL;CAR;VOICE:66666666666\r\n"); VCard.append("EMAIL;INTERNET;HOME:[email protected]\r\n"); VCard.append("END:VCARD"); item->setData(VCard.c_str(), VCard.length()); winC = updateOutlookItem(ss, item); WIN_ASSERT_NOT_NULL(winC, TEXT("The item retrieved from the backend is null.")); winC->getProperty(L"HomeAddress", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The HomeAddress is not null")); winC->getProperty(L"BusinessAddress", propValue); WIN_ASSERT_TRUE(propValue.empty(), TEXT("The BusinessAddress is not null")); delete winC; // // delete the test item // ret = ss->deleteItem(*item); WIN_ASSERT_EQUAL(ret, 200, TEXT("delete item is not correct")); delete item; delete ss; }
END_TEST BEGIN_TEST(ItemTestIsInteractable4) { WIN_ASSERT_TRUE(i2.canInteractWithItem(i4)); }
END_TESTF BEGIN_TESTF(initialize_1, SharedMemoryInitializeFixture) { WIN_ASSERT_TRUE(Initialize(1)); }
}END_TESTF // divu1 ノーマル BEGIN_TESTF(r5900_mmi_divu1_001, r5900_mmi_fix_01){ try { OPEN_ELF("mmi"); INIT_GPR(0xcccccccc); g_cpu->m_hi.d[3] = g_cpu->m_hi.d[2] = g_cpu->m_hi.d[1] = g_cpu->m_hi.d[0] = 0xcccccccc; g_cpu->m_lo.d[3] = g_cpu->m_lo.d[2] = g_cpu->m_lo.d[1] = g_cpu->m_lo.d[0] = 0xcccccccc; g_cpu->m_t0.d[0] = 0x00000045; g_cpu->m_s0.d[0] = 0x00000020; // 被除数が正・除数が正 g_cpu->m_t1.d[0] = 0xfffffffd; g_cpu->m_s1.d[0] = 0x00000002; // 被除数が負・除数が正 g_cpu->m_t2.d[0] = 0xfffffffd; g_cpu->m_s2.d[0] = 0xfffffffe; // 被除数が負・除数が負 g_cpu->m_t3.d[0] = 0x00000003; g_cpu->m_s3.d[0] = 0xfffffffe; // 被除数が正・除数が負 g_cpu->m_t4.d[0] = 0x00001234; g_cpu->m_s4.d[0] = 0x00000000; // 0除算 g_cpu->m_t5.d[0] = 0x40000000; g_cpu->m_s5.d[0] = 0x00000001; // 1除算 商が正 g_cpu->m_t6.d[0] = 0x80000000; g_cpu->m_s6.d[0] = 0x00000001; // 1除算 商が負 g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x00000000 && g_cpu->m_s0.d[0] == 0x00000005); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00000000 && g_cpu->m_t0.d[0] == 0x00000002); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0x00000000 && g_cpu->m_s1.d[0] == 0x00000001); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x00000000 && g_cpu->m_t1.d[0] == 0x7ffffffe); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0xffffffff && g_cpu->m_s2.d[0] == 0xfffffffd); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x00000000); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0x00000000 && g_cpu->m_s3.d[0] == 0x00000003); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000000 && g_cpu->m_t3.d[0] == 0x00000000); // lo 商 // 0除算はhi, loが変化しないので前回の演算結果と同じものが格納される。念のためチェック WIN_ASSERT_TRUE(g_cpu->m_s4.d[1] == 0x00000000 && g_cpu->m_s4.d[0] == 0x00000003); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x00000000 && g_cpu->m_t4.d[0] == 0x00000000); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s5.d[1] == 0x00000000 && g_cpu->m_s5.d[0] == 0x00000000); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x00000000 && g_cpu->m_t5.d[0] == 0x40000000); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s6.d[1] == 0x00000000 && g_cpu->m_s6.d[0] == 0x00000000); // hi 余 WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0xffffffff && g_cpu->m_t6.d[0] == 0x80000000); // lo 商 WIN_ASSERT_TRUE(g_cpu->m_s6.d[1] == g_cpu->m_hi.d[3] && g_cpu->m_s6.d[0] == g_cpu->m_hi.d[2]); // hi WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == g_cpu->m_lo.d[3] && g_cpu->m_t6.d[0] == g_cpu->m_lo.d[2]); // lo } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // sllv srlv srav ノーマル BEGIN_TESTF(r5900_special_sllv_srlv_srav_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_v0.d[1] = 0x00000000; g_cpu->m_v0.d[0] = 0x92348765; g_cpu->m_v1.d[1] = 0x00000000; g_cpu->m_v1.d[0] = 0x12348765; g_cpu->m_a0.d[0] = 0xff000000; g_cpu->m_a1.d[0] = 0xff000001; g_cpu->m_a2.d[0] = 0xffff0010; g_cpu->m_a3.d[0] = 0xffff001f; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0xffffffff && g_cpu->m_t0.d[0] == 0x92348765); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x00000000 && g_cpu->m_t1.d[0] == 0x24690eca); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0xffffffff && g_cpu->m_t2.d[0] == 0x87650000); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xffffffff && g_cpu->m_t3.d[0] == 0x80000000); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0xffffffff && g_cpu->m_s0.d[0] == 0x92348765); WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0x00000000 && g_cpu->m_s1.d[0] == 0x491a43b2); WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0x00000000 && g_cpu->m_s2.d[0] == 0x00009234); WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0x00000000 && g_cpu->m_s3.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_s4.d[1] == 0xffffffff && g_cpu->m_s4.d[0] == 0x92348765); WIN_ASSERT_TRUE(g_cpu->m_s5.d[1] == 0xffffffff && g_cpu->m_s5.d[0] == 0xc91a43b2); WIN_ASSERT_TRUE(g_cpu->m_s6.d[1] == 0x00000000 && g_cpu->m_s6.d[0] == 0x12348765); WIN_ASSERT_TRUE(g_cpu->m_s7.d[1] == 0x00000000 && g_cpu->m_s7.d[0] == 0x091a43b2); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // and or xor nor ノーマル BEGIN_TESTF(r5900_special_and_or_xor_nor_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_v0.d[1] = 0x0000ffff; g_cpu->m_v0.d[0] = 0xff00ff00; g_cpu->m_v1.d[1] = 0x00000000; g_cpu->m_v1.d[0] = 0x00000000; g_cpu->m_s0.d[1] = 0x12345678; g_cpu->m_s0.d[0] = 0x12345678; g_cpu->m_a0.d[1] = 0x0000ffff; g_cpu->m_a0.d[0] = 0xff00ff00; g_cpu->m_a1.d[1] = 0x0000ffff; g_cpu->m_a1.d[0] = 0xff00ff00; g_cpu->m_a2.d[1] = 0x0000ffff; g_cpu->m_a2.d[0] = 0xff00ff00; g_cpu->m_a3.d[1] = 0x0000ffff; g_cpu->m_a3.d[0] = 0xff00ff00; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00005678 && g_cpu->m_t0.d[0] == 0x12005600); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x00000000 && g_cpu->m_t1.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x1234ffff && g_cpu->m_t2.d[0] == 0xff34ff78); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x12345678 && g_cpu->m_t3.d[0] == 0x12345678); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x1234a987 && g_cpu->m_t4.d[0] == 0xed34a978); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x12345678 && g_cpu->m_t5.d[0] == 0x12345678); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0xedcb0000 && g_cpu->m_t6.d[0] == 0x00cb0087); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0xedcba987 && g_cpu->m_t7.d[0] == 0xedcba987); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x00005678 && g_cpu->m_a0.d[0] == 0x12005600); WIN_ASSERT_TRUE(g_cpu->m_a1.d[1] == 0x1234ffff && g_cpu->m_a1.d[0] == 0xff34ff78); WIN_ASSERT_TRUE(g_cpu->m_a2.d[1] == 0x1234a987 && g_cpu->m_a2.d[0] == 0xed34a978); WIN_ASSERT_TRUE(g_cpu->m_a3.d[1] == 0xedcb0000 && g_cpu->m_a3.d[0] == 0x00cb0087); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // sltu ノーマル&オーバーフロー BEGIN_TESTF(r5900_special_sltu_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_t0.d[1] = 0x00000000; g_cpu->m_t0.d[0] = 0x00000000; g_cpu->m_t1.d[1] = 0x00000000; g_cpu->m_t1.d[0] = 0x00000001; g_cpu->m_t2.d[1] = 0xffffffff; g_cpu->m_t2.d[0] = 0xffffffff; g_cpu->m_t3.d[1] = 0x7fffffff; g_cpu->m_t3.d[0] = 0x00000000; // 上位WORDオーバーフロー+ g_cpu->m_t4.d[1] = 0x80000000; g_cpu->m_t4.d[0] = 0x00000000; // 上位WORDオーバーフロー- g_cpu->m_t5.d[1] = 0x00000000; g_cpu->m_t5.d[0] = 0x7fffffff; // 下位WORDオーバーフロー+ g_cpu->m_t6.d[1] = 0x00000000; g_cpu->m_t6.d[0] = 0x80000000; // 下位WORDオーバーフロー- g_cpu->m_t7.d[1] = 0x00000001; g_cpu->m_t7.d[0] = 0x00000000; // 上位WORDでの大小比較 g_cpu->m_v0.d[1] = 0x00000000; g_cpu->m_v0.d[0] = 0x00000001; g_cpu->m_v1.d[1] = 0xffffffff; g_cpu->m_v1.d[0] = 0xffffffff; g_cpu->m_k0.d[1] = 0x00000000; g_cpu->m_k0.d[0] = 0x00000000; g_cpu->m_k1.d[1] = 0x00000002; g_cpu->m_k1.d[0] = 0x00000000; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x00000000 && g_cpu->m_a0.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_a1.d[1] == 0x00000000 && g_cpu->m_a1.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_a2.d[1] == 0x00000000 && g_cpu->m_a2.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_a3.d[1] == 0x00000000 && g_cpu->m_a3.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x00000000 && g_cpu->m_s0.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0x00000000 && g_cpu->m_s1.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0x00000000 && g_cpu->m_s2.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0x00000000 && g_cpu->m_s3.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s4.d[1] == 0x00000000 && g_cpu->m_s4.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s5.d[1] == 0x00000000 && g_cpu->m_s5.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s6.d[1] == 0x00000000 && g_cpu->m_s6.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s7.d[1] == 0x00000000 && g_cpu->m_s7.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00000000 && g_cpu->m_t0.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x00000000 && g_cpu->m_t1.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000000 && g_cpu->m_t3.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x00000000 && g_cpu->m_t4.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x00000000 && g_cpu->m_t5.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0x00000000 && g_cpu->m_t6.d[0] == 0x00000001); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0x00000000 && g_cpu->m_t7.d[0] == 0x00000001); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // dsra dsra32 ノーマル BEGIN_TESTF(r5900_special_dsra_dsra32_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_a0.d[1] = 0x01234567; g_cpu->m_a0.d[0] = 0x89abcdef; g_cpu->m_a1.d[1] = 0x81234567; g_cpu->m_a1.d[0] = 0x89abcdef; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x01234567 && g_cpu->m_t0.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0x0091a2b3 && g_cpu->m_t1.d[0] == 0xc4d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0x00000000 && g_cpu->m_t2.d[0] == 0x02468acf); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0x00000123 && g_cpu->m_t3.d[0] == 0x456789ab); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x81234567 && g_cpu->m_t4.d[0] == 0x89abcdef); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0xc091a2b3 && g_cpu->m_t5.d[0] == 0xc4d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0xffffffff && g_cpu->m_t6.d[0] == 0x02468acf); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0xffff8123 && g_cpu->m_t7.d[0] == 0x456789ab); WIN_ASSERT_TRUE(g_cpu->m_s0.d[1] == 0x00000000 && g_cpu->m_s0.d[0] == 0x01234567); WIN_ASSERT_TRUE(g_cpu->m_s1.d[1] == 0x00000000 && g_cpu->m_s1.d[0] == 0x0091a2b3); WIN_ASSERT_TRUE(g_cpu->m_s2.d[1] == 0x00000000 && g_cpu->m_s2.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_s3.d[1] == 0x00000000 && g_cpu->m_s3.d[0] == 0x00000123); WIN_ASSERT_TRUE(g_cpu->m_s4.d[1] == 0xffffffff && g_cpu->m_s4.d[0] == 0x81234567); WIN_ASSERT_TRUE(g_cpu->m_s5.d[1] == 0xffffffff && g_cpu->m_s5.d[0] == 0xc091a2b3); WIN_ASSERT_TRUE(g_cpu->m_s6.d[1] == 0xffffffff && g_cpu->m_s6.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_s7.d[1] == 0xffffffff && g_cpu->m_s7.d[0] == 0xffff8123); WIN_ASSERT_TRUE(g_cpu->m_a0.d[1] == 0x0091a2b3 && g_cpu->m_a0.d[0] == 0xc4d5e6f7); WIN_ASSERT_TRUE(g_cpu->m_a1.d[1] == 0xffffffff && g_cpu->m_a1.d[0] == 0xc091a2b3); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
}END_TESTF // dadd daddu BEGIN_TESTF(r5900_special_dadd_daddu_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_s0.d[1] = 0x00123456; g_cpu->m_s0.d[0] = 0x789abcde; g_cpu->m_s1.d[1] = 0xffffff11; g_cpu->m_s1.d[0] = 0xffffffff; g_cpu->m_s2.d[1] = 0x7fffffff; g_cpu->m_s2.d[0] = 0xffffffff; g_cpu->m_s3.d[1] = 0x80000000; g_cpu->m_s3.d[0] = 0x00000000; g_cpu->m_s4.d[1] = 0x00000001; g_cpu->m_s4.d[0] = 0x00000000; g_cpu->m_s5.d[1] = 0x00000000; g_cpu->m_s5.d[0] = 0xffffffff; g_cpu->m_a0.d[1] = 0x00edcba9; g_cpu->m_a0.d[0] = 0x87654321; g_cpu->m_a1.d[1] = 0x00000000; g_cpu->m_a1.d[0] = 0xffffffff; g_cpu->m_a2.d[1] = 0x00000001; g_cpu->m_a2.d[0] = 0x00000000; g_cpu->m_a3.d[1] = 0xfffffffe; g_cpu->m_a3.d[0] = 0x00000000; g_cpu->m_v0.d[1] = 0xffffffff; g_cpu->m_v0.d[0] = 0xffffffff; g_cpu->m_v1.d[1] = 0x00000000; g_cpu->m_v1.d[0] = 0x00000001; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00ffffff && g_cpu->m_t0.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0xffffff12 && g_cpu->m_t1.d[0] == 0xfffffffe); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0xcccccccc && g_cpu->m_t2.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xcccccccc && g_cpu->m_t3.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x00000000 && g_cpu->m_t4.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x00000001 && g_cpu->m_t5.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0x00ffffff && g_cpu->m_t6.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0xffffff12 && g_cpu->m_t7.d[0] == 0xfffffffe); WIN_ASSERT_TRUE(g_cpu->m_t8.d[1] == 0x80000000 && g_cpu->m_t8.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t9.d[1] == 0x7ffffffe && g_cpu->m_t9.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_k0.d[1] == 0x00000000 && g_cpu->m_k0.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_k1.d[1] == 0x00000001 && g_cpu->m_k1.d[0] == 0x00000000); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF
END_TEST BEGIN_TEST(ItemTestIsInteractable1) { WIN_ASSERT_TRUE(i1.canInteractWithItem(i3)); }
}END_TESTF // dsub dsubu BEGIN_TESTF(r5900_special_dsub_dsubu_001, r5900_special_fix_01) { try { OPEN_ELF("special"); INIT_GPR(0xcccccccc); g_cpu->m_s0.d[1] = 0x01000000; g_cpu->m_s0.d[0] = 0xffffffff; g_cpu->m_s1.d[1] = 0x01000000; g_cpu->m_s1.d[0] = 0x00000000; g_cpu->m_s2.d[1] = 0x7fffffff; g_cpu->m_s2.d[0] = 0xffffffff; g_cpu->m_s3.d[1] = 0x80000000; g_cpu->m_s3.d[0] = 0x00000000; g_cpu->m_s4.d[1] = 0x00000001; g_cpu->m_s4.d[0] = 0x00000000; g_cpu->m_s5.d[1] = 0x00000000; g_cpu->m_s5.d[0] = 0xffffffff; g_cpu->m_a0.d[1] = 0x00ffffff; g_cpu->m_a0.d[0] = 0x00000000; g_cpu->m_a1.d[1] = 0x02000000; g_cpu->m_a1.d[0] = 0x00000000; g_cpu->m_a2.d[1] = 0xffffffff; g_cpu->m_a2.d[0] = 0xffffffff; g_cpu->m_a3.d[1] = 0x00000000; g_cpu->m_a3.d[0] = 0x00000001; g_cpu->m_v0.d[1] = 0x00000000; g_cpu->m_v0.d[0] = 0x00000001; g_cpu->m_v1.d[1] = 0xffffffff; g_cpu->m_v1.d[0] = 0xffffffff; g_cpu->execute(); WIN_ASSERT_TRUE(g_cpu->m_t0.d[1] == 0x00000001 && g_cpu->m_t0.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t1.d[1] == 0xff000000 && g_cpu->m_t1.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t2.d[1] == 0xcccccccc && g_cpu->m_t2.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t3.d[1] == 0xcccccccc && g_cpu->m_t3.d[0] == 0xcccccccc); WIN_ASSERT_TRUE(g_cpu->m_t4.d[1] == 0x00000000 && g_cpu->m_t4.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t5.d[1] == 0x00000001 && g_cpu->m_t5.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t6.d[1] == 0x00000001 && g_cpu->m_t6.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_t7.d[1] == 0xff000000 && g_cpu->m_t7.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t8.d[1] == 0x80000000 && g_cpu->m_t8.d[0] == 0x00000000); WIN_ASSERT_TRUE(g_cpu->m_t9.d[1] == 0x7fffffff && g_cpu->m_t9.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_k0.d[1] == 0x00000000 && g_cpu->m_k0.d[0] == 0xffffffff); WIN_ASSERT_TRUE(g_cpu->m_k1.d[1] == 0x00000001 && g_cpu->m_k1.d[0] == 0x00000000); } catch (char* msg) { WIN_ASSERT_FAIL(msg); } }END_TESTF