aboutsummaryrefslogtreecommitdiff
path: root/src/test/alert_tests.cpp
diff options
context:
space:
mode:
authorlangerhans <[email protected]>2014-04-24 21:59:40 +0200
committerlangerhans <[email protected]>2014-04-24 21:59:40 +0200
commitbcce1e6b428c57aaa661e494c453aa5362f57672 (patch)
tree08eab15350ead827fcf7aa91e81468cc2ef3013f /src/test/alert_tests.cpp
parentShiny, retina ready OS X icon file (diff)
downloaddiscoin-bcce1e6b428c57aaa661e494c453aa5362f57672.tar.xz
discoin-bcce1e6b428c57aaa661e494c453aa5362f57672.zip
Fix doubled alerts in alert tests causing them to fail
Diffstat (limited to 'src/test/alert_tests.cpp')
-rw-r--r--src/test/alert_tests.cpp179
1 files changed, 91 insertions, 88 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<sMsg.size(); i++) {
- alert.vchMsg.push_back(sMsg[i]);
+struct CreateAlerts
+{
+ 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<sMsg.size(); i++) {
+ alert.vchMsg.push_back(sMsg[i]);
+ }
+
+ //a dummy secret key with the public key
+ //0469204F0E1800E16C1F85176BDC27A245F09987DB71A1EF5C4BD48A42F9AFD1D74F21469488DB552B594AC29CE667AD60DAAD0FFBCE03FB0C2AC49FFB07B36DC5
+ //set to match the mainnet vAlertPubKey from chainparams.cpp
+ const std::vector<unsigned char> 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<unsigned char> 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");
+
+ 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);
+
+ 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.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.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.nMinVer = 0;
+ alert.nMaxVer = 999999;
+ alert.strStatusBar = "Evil Alert'; /bin/ls; echo '";
+ alert.setSubVer.clear();
+ SignAndSave(alert, filename);
+ }
+ ~CreateAlerts() { }
+};
-//
-// 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";
-
- 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.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.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.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<unsigned char> vch(alert_tests::alertTests, alert_tests::alertTests + sizeof(alert_tests::alertTests));
CDataStream stream(vch, SER_DISK, CLIENT_VERSION);
try {