From bcce1e6b428c57aaa661e494c453aa5362f57672 Mon Sep 17 00:00:00 2001 From: langerhans Date: Thu, 24 Apr 2014 21:59:40 +0200 Subject: [PATCH] Fix doubled alerts in alert tests causing them to fail --- src/test/alert_tests.cpp | 161 ++++++++++++++++++----------------- src/test/data/alertTests.raw | Bin 2561 -> 1281 bytes 2 files changed, 82 insertions(+), 79 deletions(-) diff --git a/src/test/alert_tests.cpp b/src/test/alert_tests.cpp index 5ecf24a5b..a4ee6cac5 100644 --- a/src/test/alert_tests.cpp +++ b/src/test/alert_tests.cpp @@ -28,103 +28,106 @@ how to create this data: */ #ifdef CREATE_ALERTS -void SignAndSave(CAlert alert, const std::string filename) { - //serialze alert message - CDataStream sMsg(SER_NETWORK, PROTOCOL_VERSION); - sMsg << (CUnsignedAlert)alert; - alert.vchMsg.reserve(sMsg.size()); - for(size_t i=0; i secretKey = ParseHex("1A4976EE6174D80B8B3FF5E9B9C6E638CABFA9A5975557FEA967BC089A5584EE"); + CKey secret; + secret.Set(secretKey.begin(), secretKey.end(), false); + assert(secret.IsValid()); + + //sign alert + secret.Sign(alert.GetHash(), alert.vchSig); + assert(alert.CheckSignature()); + + //serialize alert + CDataStream ss(SER_DISK, CLIENT_VERSION); + ss << alert; + + //write alert + std::ofstream fs; + fs.open(filename.c_str(), std::ios::out | std::ios::app | std::ios::binary); + fs.write((char*)&ss[0], ss.size()); + fs.close(); } - //a dummy secret key with the public key - //0469204F0E1800E16C1F85176BDC27A245F09987DB71A1EF5C4BD48A42F9AFD1D74F21469488DB552B594AC29CE667AD60DAAD0FFBCE03FB0C2AC49FFB07B36DC5 - //set to match the mainnet vAlertPubKey from chainparams.cpp - const std::vector secretKey = ParseHex("1A4976EE6174D80B8B3FF5E9B9C6E638CABFA9A5975557FEA967BC089A5584EE"); - CKey secret; - secret.Set(secretKey.begin(), secretKey.end(), false); - assert(secret.IsValid()); - - //sign alert - secret.Sign(alert.GetHash(), alert.vchSig); - assert(alert.CheckSignature()); - - //serialize alert - CDataStream ss(SER_DISK, CLIENT_VERSION); - ss << alert; - - //write alert - std::ofstream fs; - fs.open(filename.c_str(), std::ios::out | std::ios::app | std::ios::binary); - fs.write((char*)&ss[0], ss.size()); - fs.close(); -} + // + // alertTests contains 7 alerts, generated with this code: + // + CreateAlerts() + { + std::string filename("src/test/alertTests.raw"); -// -// alertTests contains 7 alerts, generated with this code: -// -void CreateAlerts() -{ - std::string filename("src/test/alertTests.raw"); + CAlert alert; + alert.nRelayUntil = 60; + alert.nExpiration = 24 * 60 * 60; + alert.nID = 1; + alert.nCancel = 0; // cancels previous messages up to this ID number + alert.nMinVer = 0; // These versions are protocol versions + alert.nMaxVer = 999001; + alert.nPriority = 1; + alert.strComment = "Alert comment"; + alert.strStatusBar = "Alert 1"; - CAlert alert; - alert.nRelayUntil = 60; - alert.nExpiration = 24 * 60 * 60; - alert.nID = 1; - alert.nCancel = 0; // cancels previous messages up to this ID number - alert.nMinVer = 0; // These versions are protocol versions - alert.nMaxVer = 999001; - alert.nPriority = 1; - alert.strComment = "Alert comment"; - alert.strStatusBar = "Alert 1"; + SignAndSave(alert, filename); - SignAndSave(alert, filename); + alert.setSubVer.insert(std::string("/Satoshi:0.1.0/")); + alert.strStatusBar = "Alert 1 for Satoshi 0.1.0"; + SignAndSave(alert, filename); - alert.setSubVer.insert(std::string("/Satoshi:0.1.0/")); - alert.strStatusBar = "Alert 1 for Satoshi 0.1.0"; - SignAndSave(alert, filename); + alert.setSubVer.insert(std::string("/Satoshi:0.2.0/")); + alert.strStatusBar = "Alert 1 for Satoshi 0.1.0, 0.2.0"; + SignAndSave(alert, filename); - alert.setSubVer.insert(std::string("/Satoshi:0.2.0/")); - alert.strStatusBar = "Alert 1 for Satoshi 0.1.0, 0.2.0"; - SignAndSave(alert, filename); + alert.setSubVer.clear(); + ++alert.nID; + alert.nCancel = 1; + alert.nPriority = 100; + alert.strStatusBar = "Alert 2, cancels 1"; + SignAndSave(alert, filename); - alert.setSubVer.clear(); - ++alert.nID; - alert.nCancel = 1; - alert.nPriority = 100; - alert.strStatusBar = "Alert 2, cancels 1"; - SignAndSave(alert, filename); + alert.nExpiration += 60; + ++alert.nID; + SignAndSave(alert, filename); - alert.nExpiration += 60; - ++alert.nID; - SignAndSave(alert, filename); + ++alert.nID; + alert.nMinVer = 11; + alert.nMaxVer = 22; + SignAndSave(alert, filename); - ++alert.nID; - alert.nMinVer = 11; - alert.nMaxVer = 22; - SignAndSave(alert, filename); + ++alert.nID; + alert.strStatusBar = "Alert 2 for Satoshi 0.1.0"; + alert.setSubVer.insert(std::string("/Satoshi:0.1.0/")); + SignAndSave(alert, filename); - ++alert.nID; - alert.strStatusBar = "Alert 2 for Satoshi 0.1.0"; - alert.setSubVer.insert(std::string("/Satoshi:0.1.0/")); - SignAndSave(alert, filename); + ++alert.nID; + alert.nMinVer = 0; + alert.nMaxVer = 999999; + alert.strStatusBar = "Evil Alert'; /bin/ls; echo '"; + alert.setSubVer.clear(); + SignAndSave(alert, filename); + } + ~CreateAlerts() { } +}; - ++alert.nID; - alert.nMinVer = 0; - alert.nMaxVer = 999999; - alert.strStatusBar = "Evil Alert'; /bin/ls; echo '"; - alert.setSubVer.clear(); - SignAndSave(alert, filename); -} +BOOST_GLOBAL_FIXTURE(CreateAlerts) #endif struct ReadAlerts { ReadAlerts() { -#ifdef CREATE_ALERTS - CreateAlerts(); -#endif std::vector vch(alert_tests::alertTests, alert_tests::alertTests + sizeof(alert_tests::alertTests)); CDataStream stream(vch, SER_DISK, CLIENT_VERSION); try { diff --git a/src/test/data/alertTests.raw b/src/test/data/alertTests.raw index cb752deeb85cccb0f9cb05ecf90c387d85002c96..cd3cdbf43055e1c56f048a60885031e07e6127f7 100644 GIT binary patch delta 612 zcmV-q0-ODT6oCqmNJHb{OMudk$rTVE-xVgSpXlgon-w;3;-8E1dOrxSA%_AWM_Tkc zoX6P|u5?{8g18Cy!f%Wg;8DQesW!-$jkB2{W03(Rk+43K@C61#g?H$p`MF`}w?1)J z8}UQ6D1e*$M{_d2^L#_gf8P^$0w8nZsQ{Sv* zU*&p{0VR`O23teTn}*ASCK9P)8i=l2e7=eU%x@Hu1oQYO35WD7Z+oBuAYNH~mRiH$ z(T27)!|5!3+xB(=9ag~v0NNM2C|IcTUrdn!6q67KJwgdZw=5U0VqTeknT302wE(vI z6%Z$Y6E5kab8Th;#~uP8e|JM^9?q5h%goVck{kVB6oLzUb+`~wfrpv!Dnm>C`V>6qC-AdF^P-2=Q zD0Xz}+#lTRC|@XzGDq+wv?tAzj|UZ#I0!gMMleJIAbs7-D@9f%R?NjAi(z#g@L{!H zZ=uKzMxI!wNvVh$;ysg(}uZLlaL1#lXwJ3LXPw%cXo7CMHL#FksdN5JeV8e yH?{3=!CB@cjAirDx&k0OQL`gdj}T4CoY8<`b{l6%4ba4M9(_~Wz!~RJ#Q)m?`V+ta delta 1195 zcmV;c1XTNh3V{@mNJG2R=e&1_y!IfIDM;a-q_Iey^DseQ17SDoDo1bxK63&fOTst- zhLCF@#PqWEGJ9OH^|}Zn%u6%QeN*5W$NXQ{W03(Rk+42UMleJIAX{7j{g?l`kZpXI zW=Y57c)B2&10wA!hkv*L z%-0BdkpU%>Tmf4{wBR93gtKgsI)Dq!xT(F<3@slQN~P>0Th!C0ys!VFhv3(0Kw8Cn|4tZFSHO| zL%9xE3j{%EPxcik`)<_KZ+3s5a{?e{)PWCgJFK4iG=v%uuqs)kkaOqA^#J(e>!v`0 zvjkX^jRI3b(vA-9+Q3?Hn)_(!peSvlpwP-?U)Hn|u+k;HSxSW-0w7+!nfLkCCIhF~ zTVh;G_(4YC3co8|vr#AYE;@|kNkx+)15HRrFhv3(0Dw{=td`p~?T|6n>Ct##^=glb zIKc@UkM)Gk)zehZlmZ|stB$qceDs1Yn>Nb*UHs0w5D(#6&cPFL- zAU?Y#$DQW=gM=5rbUPX$jk{z5-1phAzQq}}IV3<*O^`@K!1UftuA0McKi|Kr)yyb8 zf&Du5Z3J|i&%4TcwVsSF0w7nX{huZxDSaE+T25HQ()(M3#N)(b)E@;T3kYj*zb0dm z0VR>JL_>yv+=a&7T*$HWFp=xzRe7t(#!+i;D68-NQ%>06-^BtTG(%4Kq-mV2dO*=6 z5L`nQw7*7kZ46d-+A-)u(Pp{odXWJolUxB?L+|rHzT9?DMy^S;|B{q?+8a$Xo(b*m zY==zqXjC_tJOUs^C|KC}eL(?f91}{Y8jl?ahCWjBHeOjmi^vvwl1d9qkpUEw4gx(w zePaAky>U&&l^W76&;F*wm@ zGe=i>rGeDiAd!cX6m64@0!@=|0|i2N5kQs(C&>r3FB5pV*BD=Uegh_*V_e~Oh!$Wg zcvSQPAPpgqnh*?0{aJK1A8hvkfT-pj>XB|byTug6k?E0{tdk-GO-M&DMFJrJ*+A_j znUdOX{a_v2(MW3)Zmif(n6y@17t@=Fhl|%ek^m4b?n0mq-V-cktEPAX)hw~XzWrBk)S3&eAPPD z0w7}lK3F(5MraV!S3Dz-Pfi-e2nCNIIfZ?}?j{T(xAT)?1Xo8!Fhl|%L;Y#TWyeI7 z?{cafg{tXA9eVZreIk94lB}v?7G;;~0w8%bJT0#g&8;ck$TZX>{kc7S>|OZ&gk^`< JP|-s$;srvXD3SmG