Merge default into ENGINE-451 ENGINE-451
authorClaudio Luck <claudio.luck@pep.foundation>
Sun, 12 Aug 2018 01:15:25 +0200
branchENGINE-451
changeset 28114bb07fc31b93
parent 2810 9ae82b72ca33
parent 2806 d958333b87d0
child 2812 7a3a556d4382
Merge default into ENGINE-451
src/pgp_gpg.c
test/src/EngineTestSuite.cc
test/src/SuiteMaker.cc
     1.1 --- a/build-mac/pEpEngine.xcodeproj/project.pbxproj	Sun Aug 12 00:05:48 2018 +0200
     1.2 +++ b/build-mac/pEpEngine.xcodeproj/project.pbxproj	Sun Aug 12 01:15:25 2018 +0200
     1.3 @@ -686,7 +686,7 @@
     1.4  		64796A371B455AA5004B1C24 /* Project object */ = {
     1.5  			isa = PBXProject;
     1.6  			attributes = {
     1.7 -				LastUpgradeCheck = 0920;
     1.8 +				LastUpgradeCheck = 0940;
     1.9  				ORGANIZATIONNAME = "Edouard Tisserant";
    1.10  				TargetAttributes = {
    1.11  					644297BE1BE11C65002BC73B = {
    1.12 @@ -932,12 +932,14 @@
    1.13  				CLANG_WARN_BOOL_CONVERSION = YES;
    1.14  				CLANG_WARN_COMMA = YES;
    1.15  				CLANG_WARN_CONSTANT_CONVERSION = YES;
    1.16 +				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
    1.17  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
    1.18  				CLANG_WARN_EMPTY_BODY = YES;
    1.19  				CLANG_WARN_ENUM_CONVERSION = YES;
    1.20  				CLANG_WARN_INFINITE_RECURSION = YES;
    1.21  				CLANG_WARN_INT_CONVERSION = YES;
    1.22  				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
    1.23 +				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
    1.24  				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
    1.25  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
    1.26  				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
    1.27 @@ -993,12 +995,14 @@
    1.28  				CLANG_WARN_BOOL_CONVERSION = YES;
    1.29  				CLANG_WARN_COMMA = YES;
    1.30  				CLANG_WARN_CONSTANT_CONVERSION = YES;
    1.31 +				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
    1.32  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
    1.33  				CLANG_WARN_EMPTY_BODY = YES;
    1.34  				CLANG_WARN_ENUM_CONVERSION = YES;
    1.35  				CLANG_WARN_INFINITE_RECURSION = YES;
    1.36  				CLANG_WARN_INT_CONVERSION = YES;
    1.37  				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
    1.38 +				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
    1.39  				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
    1.40  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
    1.41  				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
     2.1 --- a/src/keymanagement.c	Sun Aug 12 00:05:48 2018 +0200
     2.2 +++ b/src/keymanagement.c	Sun Aug 12 01:15:25 2018 +0200
     2.3 @@ -1704,6 +1704,15 @@
     2.4      if (status != PEP_STATUS_OK && status != PEP_GET_KEY_FAILED && status != PEP_KEY_UNSUITABLE)
     2.5          return status;
     2.6      status = PEP_STATUS_OK;
     2.7 +
     2.8 +    bool private = false;
     2.9 +    status = contains_priv_key(session, fpr, &private);
    2.10 +    
    2.11 +    if (status != PEP_STATUS_OK)
    2.12 +        return status;
    2.13 +        
    2.14 +    if (!private)
    2.15 +        return PEP_KEY_UNSUITABLE;
    2.16   
    2.17      if (me->fpr)
    2.18          free(me->fpr);
     3.1 --- a/src/pgp_gpg.c	Sun Aug 12 00:05:48 2018 +0200
     3.2 +++ b/src/pgp_gpg.c	Sun Aug 12 01:15:25 2018 +0200
     3.3 @@ -1716,11 +1716,8 @@
     3.4                      break;
     3.5                  case GPG_ERR_INV_VALUE:
     3.6                      return PEP_ILLEGAL_VALUE;
     3.7 -                case GPG_ERR_GENERAL:
     3.8 +                default:
     3.9                      return PEP_CANNOT_CREATE_KEY;
    3.10 -                default:
    3.11 -                    assert(0);
    3.12 -                    return PEP_UNKNOWN_ERROR;
    3.13              }
    3.14  
    3.15              /* This is the same regardless of whether we got it from genkey or createkey */
     4.1 --- a/test/convenience_scripts/DANGER_delete_keys_silently_w_pattern.py	Sun Aug 12 00:05:48 2018 +0200
     4.2 +++ b/test/convenience_scripts/DANGER_delete_keys_silently_w_pattern.py	Sun Aug 12 01:15:25 2018 +0200
     4.3 @@ -9,7 +9,7 @@
     4.4  
     4.5  args = parser.parse_args()
     4.6  
     4.7 -homedir = os.path.join(os.path.expanduser('~'),".gnupg")
     4.8 +homedir = os.path.join(os.path.expanduser('~'),"gnupg")
     4.9  print("GNUPGHOME=" + homedir + "\n")
    4.10  
    4.11  try:
     5.1 --- a/test/convenience_scripts/keygen_for_test.py	Sun Aug 12 00:05:48 2018 +0200
     5.2 +++ b/test/convenience_scripts/keygen_for_test.py	Sun Aug 12 01:15:25 2018 +0200
     5.3 @@ -16,7 +16,7 @@
     5.4  pub_path = os.path.join(args.output_root, "pub")
     5.5  priv_path = os.path.join(args.output_root, "priv")
     5.6  
     5.7 -homedir = os.path.join(os.path.expanduser('~'),".gnupg")
     5.8 +homedir = os.path.join(os.path.expanduser('~'),"gnupg")
     5.9  print("GNUPGHOME=" + homedir + "\n")
    5.10  
    5.11  try:
     6.1 --- a/test/python_tests/setup_test.py	Sun Aug 12 00:05:48 2018 +0200
     6.2 +++ b/test/python_tests/setup_test.py	Sun Aug 12 01:15:25 2018 +0200
     6.3 @@ -38,7 +38,7 @@
     6.4      "create own identities as part of the test setup"
     6.5  
     6.6      os.environ["HOME"] = os.path.join(mydir, arthome)
     6.7 -    os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, '.gnupg')
     6.8 +    os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, 'gnupg')
     6.9  
    6.10      import pEp
    6.11      me = pEp.Identity()
     7.1 --- a/test/python_tests/test_handshake.py	Sun Aug 12 00:05:48 2018 +0200
     7.2 +++ b/test/python_tests/test_handshake.py	Sun Aug 12 01:15:25 2018 +0200
     7.3 @@ -20,7 +20,7 @@
     7.4          arthome = "test1"
     7.5  
     7.6          os.environ["HOME"] = os.path.join(mydir, arthome)
     7.7 -        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, '.gnupg')
     7.8 +        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, 'gnupg')
     7.9  
    7.10          os.chdir(os.path.join(mydir, arthome))
    7.11  
    7.12 @@ -79,7 +79,7 @@
    7.13          arthome = "test2"
    7.14  
    7.15          os.environ["HOME"] = os.path.join(mydir, arthome)
    7.16 -        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, '.gnupg')
    7.17 +        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, 'gnupg')
    7.18  
    7.19          os.chdir(os.path.join(mydir, arthome))
    7.20  
     8.1 --- a/test/src/EngineTestSuite.cc	Sun Aug 12 00:05:48 2018 +0200
     8.2 +++ b/test/src/EngineTestSuite.cc	Sun Aug 12 01:15:25 2018 +0200
     8.3 @@ -5,14 +5,6 @@
     8.4  #include <unistd.h>
     8.5  #include <ftw.h>
     8.6  #include <assert.h>
     8.7 -#include <fstream>
     8.8 -#include <iostream>
     8.9 -#include <sys/types.h>
    8.10 -#include <sys/stat.h>
    8.11 -
    8.12 -#import <string>
    8.13 -#import <vector>
    8.14 -#include <utility>
    8.15  
    8.16  #include "platform_unix.h"
    8.17  
    8.18 @@ -38,58 +30,7 @@
    8.19      number_of_tests++;
    8.20  }
    8.21  
    8.22 -void EngineTestSuite::copy_conf_file_to_test_dir(const char* dest_path, const char* conf_orig_path, const char* conf_dest_name) {
    8.23 -    string conf_dest_path = dest_path;
    8.24 -    
    8.25 -    struct stat pathinfo;
    8.26 -
    8.27 -    if(stat(conf_dest_path.c_str(), &pathinfo) != 0) {
    8.28 -        int errchk = mkdir(conf_dest_path.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    8.29 -        if (errchk != 0)
    8.30 -            throw std::runtime_error("Error accessing conf file directory.");
    8.31 -    }
    8.32 -    
    8.33 -    conf_dest_path += "/";
    8.34 -    conf_dest_path += conf_dest_name;
    8.35 -    
    8.36 -    ifstream src(conf_orig_path);
    8.37 -    ofstream dst(conf_dest_path.c_str(), ios::trunc);
    8.38 -    
    8.39 -    assert(src);
    8.40 -    assert(dst);
    8.41 -    
    8.42 -    dst << src.rdbuf();
    8.43 -     
    8.44 -    src.close();
    8.45 -    dst.close();
    8.46 -}
    8.47 -
    8.48 -void EngineTestSuite::add_file_to_gpg_dir_queue(string copy_from, string dst_fname) {    
    8.49 -    gpgdir_fileadd_queue.push_back(make_pair(copy_from, dst_fname));
    8.50 -}
    8.51 -
    8.52 -void EngineTestSuite::add_file_to_home_dir_queue(string copy_from, string dst_fname) {
    8.53 -    homedir_fileadd_queue.push_back(make_pair(copy_from, dst_fname));
    8.54 -}
    8.55 -
    8.56 -void EngineTestSuite::process_file_queue(string dirname, vector<pair<string, string>> file_queue) {
    8.57 -    if (file_queue.empty())
    8.58 -        return;
    8.59 -        
    8.60 -    vector<pair<string, string>>::iterator it;
    8.61 -    
    8.62 -    for (it = file_queue.begin(); it != file_queue.end(); it++) {
    8.63 -        copy_conf_file_to_test_dir(dirname.c_str(), it->first.c_str(), it->second.c_str());
    8.64 -    }
    8.65 -    
    8.66 -    file_queue.clear();
    8.67 -}
    8.68 -
    8.69  void EngineTestSuite::set_full_env() {
    8.70 -    set_full_env(NULL, NULL, NULL);
    8.71 -}
    8.72 -
    8.73 -void EngineTestSuite::set_full_env(const char* gpg_conf_copy_path, const char* gpg_agent_conf_file_copy_path, const char* db_conf_file_copy_path) {
    8.74      int success = 0;
    8.75      struct stat dirchk;
    8.76      
    8.77 @@ -98,7 +39,7 @@
    8.78      success = system("gpgconf --kill all");
    8.79      if (success != 0)
    8.80          throw std::runtime_error("SETUP: Error when executing 'gpgconf --kill all'.");
    8.81 - //   sleep(1); // hopefully enough time for the system to recognise that it is dead. *sigh*    
    8.82 +    sleep(1); // hopefully enough time for the system to recognise that it is dead. *sigh*    
    8.83  
    8.84      if (stat(test_home.c_str(), &dirchk) == 0) {
    8.85          if (!S_ISDIR(dirchk.st_mode))
    8.86 @@ -118,7 +59,7 @@
    8.87              throw std::runtime_error("Error creating a test directory.");
    8.88      }
    8.89  
    8.90 -    temp_test_home = test_home + "/" + my_name;
    8.91 +    string temp_test_home = test_home + "/" + my_name;
    8.92      
    8.93      int errchk = mkdir(temp_test_home.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    8.94      if (errchk != 0)
    8.95 @@ -144,23 +85,23 @@
    8.96      cout << "home is " << home << endl;
    8.97      assert(temp_test_home.compare(home) != 0);
    8.98      assert(temp_test_home.compare(home + "/") != 0);
    8.99 -    assert(temp_test_home.compare(home + "") != 0);
   8.100 -    assert(temp_test_home.compare(home + ".gnupg") != 0);
   8.101 +    assert(temp_test_home.compare(home + "/gnupg") != 0);
   8.102 +    assert(temp_test_home.compare(home + "gnupg") != 0);
   8.103      assert(temp_test_home.compare(prev_gpg_home) != 0);
   8.104 -    assert(temp_test_home.compare(prev_gpg_home + "/.gnupg") != 0);
   8.105 -    assert(temp_test_home.compare(prev_gpg_home + ".gnupg") != 0);
   8.106 +    assert(temp_test_home.compare(prev_gpg_home + "/gnupg") != 0);
   8.107 +    assert(temp_test_home.compare(prev_gpg_home + "gnupg") != 0);
   8.108  
   8.109      if (temp_test_home.compare(home) == 0 || temp_test_home.compare(home + "/") == 0 ||
   8.110 -        temp_test_home.compare(home + "/.gnupg") == 0 || temp_test_home.compare(home + ".gnupg") == 0 ||
   8.111 -        temp_test_home.compare(prev_gpg_home) == 0 || temp_test_home.compare(prev_gpg_home + "/.gnupg") == 0 ||
   8.112 -        temp_test_home.compare(prev_gpg_home + ".gnupg") == 0)
   8.113 +        temp_test_home.compare(home + "/gnupg") == 0 || temp_test_home.compare(home + "gnupg") == 0 ||
   8.114 +        temp_test_home.compare(prev_gpg_home) == 0 || temp_test_home.compare(prev_gpg_home + "/gnupg") == 0 ||
   8.115 +        temp_test_home.compare(prev_gpg_home + "gnupg") == 0)
   8.116          throw std::runtime_error("SETUP: new GNUPGHOME threatens to mess up user GNUPGHOME (and delete all their keys). NO DICE.");
   8.117      
   8.118  //    cout << "Ok - checked if new test home will be safe. We'll try and make the directory, deleting it if it has already exists." << endl;
   8.119      
   8.120      struct stat buf;
   8.121      
   8.122 -    success = setenv("GNUPGHOME", (temp_test_home + "/.gnupg").c_str(), 1);
   8.123 +    success = setenv("GNUPGHOME", (temp_test_home + "/gnupg").c_str(), 1);
   8.124      if (success != 0)
   8.125          throw std::runtime_error("SETUP: Error when setting GNUPGHOME.");
   8.126  
   8.127 @@ -169,19 +110,7 @@
   8.128      success = setenv("HOME", temp_test_home.c_str(), 1);
   8.129      if (success != 0)
   8.130          throw std::runtime_error("SETUP: Cannot set test_home for init.");
   8.131 -
   8.132 -    string tmp_gpg_dir = temp_test_home + "/.gnupg";
   8.133 -
   8.134 -    process_file_queue(tmp_gpg_dir, gpgdir_fileadd_queue);
   8.135 -    process_file_queue(temp_test_home, homedir_fileadd_queue);
   8.136 -
   8.137 -    if (gpg_conf_copy_path)
   8.138 -        copy_conf_file_to_test_dir(tmp_gpg_dir.c_str(), gpg_conf_copy_path, "gpg.conf");
   8.139 -    if (gpg_agent_conf_file_copy_path)        
   8.140 -        copy_conf_file_to_test_dir(tmp_gpg_dir.c_str(), gpg_agent_conf_file_copy_path, "gpg-agent.conf");
   8.141 -    if (db_conf_file_copy_path)
   8.142 -        copy_conf_file_to_test_dir(temp_test_home.c_str(), db_conf_file_copy_path, ".pEp_management.db");
   8.143 -        
   8.144 +    
   8.145      unix_local_db(true);
   8.146      gpg_conf(true);
   8.147      gpg_agent_conf(true);
   8.148 @@ -216,16 +145,16 @@
   8.149      unix_local_db(true);
   8.150      gpg_conf(true);
   8.151      gpg_agent_conf(true);
   8.152 -    
   8.153 +
   8.154  }
   8.155  
   8.156  void EngineTestSuite::setup() {
   8.157      on_test_number++;
   8.158  }
   8.159  
   8.160 -void EngineTestSuite::tear_down() {
   8.161 -}
   8.162 +void EngineTestSuite::tear_down() {}
   8.163  
   8.164  void EngineTestSuite::set_my_name() {
   8.165      my_name = typeid(*this).name();
   8.166  }
   8.167 +
     9.1 --- a/test/src/SuiteMaker.cc	Sun Aug 12 00:05:48 2018 +0200
     9.2 +++ b/test/src/SuiteMaker.cc	Sun Aug 12 01:15:25 2018 +0200
     9.3 @@ -12,163 +12,159 @@
     9.4  #include "SuiteMaker.h"
     9.5  
     9.6  // Begin where we generate stuff
     9.7 -#include "MapAsn1Tests.h"
     9.8 -#include "DecorateTests.h"
     9.9 -#include "EncryptMissingPrivateKeyTests.h"
    9.10 -#include "KeyeditTests.h"
    9.11 -#include "BlacklistAcceptNewKeyTests.h"
    9.12 -#include "DecryptAttachPrivateKeyUntrustedTests.h"
    9.13 -#include "AppleMailTests.h"
    9.14 -#include "CaseAndDotAddressTests.h"
    9.15 -#include "SequenceTests.h"
    9.16 -#include "BCCTests.h"
    9.17 -#include "MessageApiTests.h"
    9.18 -#include "I18nTests.h"
    9.19 -#include "CrashdumpTests.h"
    9.20 -#include "PgpBinaryTests.h"
    9.21 -#include "RevokeRegenAttachTests.h"
    9.22 -#include "BlacklistTests.h"
    9.23 -#include "LeastCommonDenomColorTests.h"
    9.24 -#include "PepSubjectReceivedTests.h"
    9.25 -#include "MistrustUndoTests.h"
    9.26 -#include "StringpairListTests.h"
    9.27 -#include "PgpListKeysTests.h"
    9.28 -#include "ReencryptPlusExtraKeysTests.h"
    9.29  #include "MimeTests.h"
    9.30  #include "BloblistTests.h"
    9.31  #include "NewUpdateIdAndMyselfTests.h"
    9.32 +#include "I18nTests.h"
    9.33 +#include "IdentityListTests.h"
    9.34 +#include "PgpBinaryTests.h"
    9.35 +#include "MistrustUndoTests.h"
    9.36 +#include "LeastCommonDenomColorTests.h"
    9.37  #include "StringlistTests.h"
    9.38 +#include "PgpListKeysTests.h"
    9.39 +#include "MessageApiTests.h"
    9.40 +#include "EncryptMissingPrivateKeyTests.h"
    9.41 +#include "CaseAndDotAddressTests.h"
    9.42 +#include "UserIDAliasTests.h"
    9.43 +#include "BCCTests.h"
    9.44 +#include "BlacklistAcceptNewKeyTests.h"
    9.45 +#include "DecryptAttachPrivateKeyUntrustedTests.h"
    9.46 +#include "BlacklistTests.h"
    9.47 +#include "RevokeRegenAttachTests.h"
    9.48 +#include "PepSubjectReceivedTests.h"
    9.49 +#include "SequenceTests.h"
    9.50 +#include "EncryptAttachPrivateKeyTests.h"
    9.51 +#include "ExternalRevokeTests.h"
    9.52 +#include "KeyeditTests.h"
    9.53  #include "LeastColorGroupTests.h"
    9.54 -#include "GPGConfFixTests.h"
    9.55 -#include "ExternalRevokeTests.h"
    9.56 -#include "EncryptForIdentityTests.h"
    9.57 +#include "DecryptAttachPrivateKeyTrustedTests.h"
    9.58  #include "TrustwordsTests.h"
    9.59 -#include "TrustManipulationTests.h"
    9.60 +#include "ReencryptPlusExtraKeysTests.h"
    9.61 +#include "MapAsn1Tests.h"
    9.62 +#include "DecorateTests.h"
    9.63  #include "MessageTwoPointOhTests.h"
    9.64 -#include "EncryptAttachPrivateKeyTests.h"
    9.65 -#include "DecryptAttachPrivateKeyTrustedTests.h"
    9.66 -#include "IdentityListTests.h"
    9.67 -#include "UserIDAliasTests.h"
    9.68 +#include "CrashdumpTests.h"
    9.69 +#include "StringpairListTests.h"
    9.70 +#include "EncryptForIdentityTests.h"
    9.71 +#include "TrustManipulationTests.h"
    9.72 +#include "AppleMailTests.h"
    9.73  
    9.74  
    9.75  const char* SuiteMaker::all_suites[] = {
    9.76 -    "MapAsn1Tests",
    9.77 -    "DecorateTests",
    9.78 -    "EncryptMissingPrivateKeyTests",
    9.79 -    "KeyeditTests",
    9.80 -    "BlacklistAcceptNewKeyTests",
    9.81 -    "DecryptAttachPrivateKeyUntrustedTests",
    9.82 -    "AppleMailTests",
    9.83 -    "CaseAndDotAddressTests",
    9.84 -    "SequenceTests",
    9.85 -    "BCCTests",
    9.86 -    "MessageApiTests",
    9.87 -    "I18nTests",
    9.88 -    "CrashdumpTests",
    9.89 -    "PgpBinaryTests",
    9.90 -    "RevokeRegenAttachTests",
    9.91 -    "BlacklistTests",
    9.92 -    "LeastCommonDenomColorTests",
    9.93 -    "PepSubjectReceivedTests",
    9.94 -    "MistrustUndoTests",
    9.95 -    "StringpairListTests",
    9.96 -    "PgpListKeysTests",
    9.97 -    "ReencryptPlusExtraKeysTests",
    9.98      "MimeTests",
    9.99      "BloblistTests",
   9.100      "NewUpdateIdAndMyselfTests",
   9.101 +    "I18nTests",
   9.102 +    "IdentityListTests",
   9.103 +    "PgpBinaryTests",
   9.104 +    "MistrustUndoTests",
   9.105 +    "LeastCommonDenomColorTests",
   9.106      "StringlistTests",
   9.107 +    "PgpListKeysTests",
   9.108 +    "MessageApiTests",
   9.109 +    "EncryptMissingPrivateKeyTests",
   9.110 +    "CaseAndDotAddressTests",
   9.111 +    "UserIDAliasTests",
   9.112 +    "BCCTests",
   9.113 +    "BlacklistAcceptNewKeyTests",
   9.114 +    "DecryptAttachPrivateKeyUntrustedTests",
   9.115 +    "BlacklistTests",
   9.116 +    "RevokeRegenAttachTests",
   9.117 +    "PepSubjectReceivedTests",
   9.118 +    "SequenceTests",
   9.119 +    "EncryptAttachPrivateKeyTests",
   9.120 +    "ExternalRevokeTests",
   9.121 +    "KeyeditTests",
   9.122      "LeastColorGroupTests",
   9.123 -    "GPGConfFixTests",
   9.124 -    "ExternalRevokeTests",
   9.125 -    "EncryptForIdentityTests",
   9.126 +    "DecryptAttachPrivateKeyTrustedTests",
   9.127      "TrustwordsTests",
   9.128 -    "TrustManipulationTests",
   9.129 +    "ReencryptPlusExtraKeysTests",
   9.130 +    "MapAsn1Tests",
   9.131 +    "DecorateTests",
   9.132      "MessageTwoPointOhTests",
   9.133 -    "EncryptAttachPrivateKeyTests",
   9.134 -    "DecryptAttachPrivateKeyTrustedTests",
   9.135 -    "IdentityListTests",
   9.136 -    "UserIDAliasTests",
   9.137 +    "CrashdumpTests",
   9.138 +    "StringpairListTests",
   9.139 +    "EncryptForIdentityTests",
   9.140 +    "TrustManipulationTests",
   9.141 +    "AppleMailTests",
   9.142  };
   9.143  
   9.144  // This file is generated, so magic constants are ok.
   9.145 -int SuiteMaker::num_suites = 37;
   9.146 +int SuiteMaker::num_suites = 36;
   9.147  
   9.148  void SuiteMaker::suitemaker_build(const char* test_class_name, const char* test_home, Test::Suite** test_suite) {
   9.149 -    if (strcmp(test_class_name, "MapAsn1Tests") == 0)
   9.150 -        *test_suite = new MapAsn1Tests(test_class_name, test_home);
   9.151 -    else if (strcmp(test_class_name, "DecorateTests") == 0)
   9.152 -        *test_suite = new DecorateTests(test_class_name, test_home);
   9.153 -    else if (strcmp(test_class_name, "EncryptMissingPrivateKeyTests") == 0)
   9.154 -        *test_suite = new EncryptMissingPrivateKeyTests(test_class_name, test_home);
   9.155 -    else if (strcmp(test_class_name, "KeyeditTests") == 0)
   9.156 -        *test_suite = new KeyeditTests(test_class_name, test_home);
   9.157 -    else if (strcmp(test_class_name, "BlacklistAcceptNewKeyTests") == 0)
   9.158 -        *test_suite = new BlacklistAcceptNewKeyTests(test_class_name, test_home);
   9.159 -    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyUntrustedTests") == 0)
   9.160 -        *test_suite = new DecryptAttachPrivateKeyUntrustedTests(test_class_name, test_home);
   9.161 -    else if (strcmp(test_class_name, "AppleMailTests") == 0)
   9.162 -        *test_suite = new AppleMailTests(test_class_name, test_home);
   9.163 -    else if (strcmp(test_class_name, "CaseAndDotAddressTests") == 0)
   9.164 -        *test_suite = new CaseAndDotAddressTests(test_class_name, test_home);
   9.165 -    else if (strcmp(test_class_name, "SequenceTests") == 0)
   9.166 -        *test_suite = new SequenceTests(test_class_name, test_home);
   9.167 -    else if (strcmp(test_class_name, "BCCTests") == 0)
   9.168 -        *test_suite = new BCCTests(test_class_name, test_home);
   9.169 -    else if (strcmp(test_class_name, "MessageApiTests") == 0)
   9.170 -        *test_suite = new MessageApiTests(test_class_name, test_home);
   9.171 -    else if (strcmp(test_class_name, "I18nTests") == 0)
   9.172 -        *test_suite = new I18nTests(test_class_name, test_home);
   9.173 -    else if (strcmp(test_class_name, "CrashdumpTests") == 0)
   9.174 -        *test_suite = new CrashdumpTests(test_class_name, test_home);
   9.175 -    else if (strcmp(test_class_name, "PgpBinaryTests") == 0)
   9.176 -        *test_suite = new PgpBinaryTests(test_class_name, test_home);
   9.177 -    else if (strcmp(test_class_name, "RevokeRegenAttachTests") == 0)
   9.178 -        *test_suite = new RevokeRegenAttachTests(test_class_name, test_home);
   9.179 -    else if (strcmp(test_class_name, "BlacklistTests") == 0)
   9.180 -        *test_suite = new BlacklistTests(test_class_name, test_home);
   9.181 -    else if (strcmp(test_class_name, "LeastCommonDenomColorTests") == 0)
   9.182 -        *test_suite = new LeastCommonDenomColorTests(test_class_name, test_home);
   9.183 -    else if (strcmp(test_class_name, "PepSubjectReceivedTests") == 0)
   9.184 -        *test_suite = new PepSubjectReceivedTests(test_class_name, test_home);
   9.185 -    else if (strcmp(test_class_name, "MistrustUndoTests") == 0)
   9.186 -        *test_suite = new MistrustUndoTests(test_class_name, test_home);
   9.187 -    else if (strcmp(test_class_name, "StringpairListTests") == 0)
   9.188 -        *test_suite = new StringpairListTests(test_class_name, test_home);
   9.189 -    else if (strcmp(test_class_name, "PgpListKeysTests") == 0)
   9.190 -        *test_suite = new PgpListKeysTests(test_class_name, test_home);
   9.191 -    else if (strcmp(test_class_name, "ReencryptPlusExtraKeysTests") == 0)
   9.192 -        *test_suite = new ReencryptPlusExtraKeysTests(test_class_name, test_home);
   9.193 -    else if (strcmp(test_class_name, "MimeTests") == 0)
   9.194 +    if (strcmp(test_class_name, "MimeTests") == 0)
   9.195          *test_suite = new MimeTests(test_class_name, test_home);
   9.196      else if (strcmp(test_class_name, "BloblistTests") == 0)
   9.197          *test_suite = new BloblistTests(test_class_name, test_home);
   9.198      else if (strcmp(test_class_name, "NewUpdateIdAndMyselfTests") == 0)
   9.199          *test_suite = new NewUpdateIdAndMyselfTests(test_class_name, test_home);
   9.200 +    else if (strcmp(test_class_name, "I18nTests") == 0)
   9.201 +        *test_suite = new I18nTests(test_class_name, test_home);
   9.202 +    else if (strcmp(test_class_name, "IdentityListTests") == 0)
   9.203 +        *test_suite = new IdentityListTests(test_class_name, test_home);
   9.204 +    else if (strcmp(test_class_name, "PgpBinaryTests") == 0)
   9.205 +        *test_suite = new PgpBinaryTests(test_class_name, test_home);
   9.206 +    else if (strcmp(test_class_name, "MistrustUndoTests") == 0)
   9.207 +        *test_suite = new MistrustUndoTests(test_class_name, test_home);
   9.208 +    else if (strcmp(test_class_name, "LeastCommonDenomColorTests") == 0)
   9.209 +        *test_suite = new LeastCommonDenomColorTests(test_class_name, test_home);
   9.210      else if (strcmp(test_class_name, "StringlistTests") == 0)
   9.211          *test_suite = new StringlistTests(test_class_name, test_home);
   9.212 +    else if (strcmp(test_class_name, "PgpListKeysTests") == 0)
   9.213 +        *test_suite = new PgpListKeysTests(test_class_name, test_home);
   9.214 +    else if (strcmp(test_class_name, "MessageApiTests") == 0)
   9.215 +        *test_suite = new MessageApiTests(test_class_name, test_home);
   9.216 +    else if (strcmp(test_class_name, "EncryptMissingPrivateKeyTests") == 0)
   9.217 +        *test_suite = new EncryptMissingPrivateKeyTests(test_class_name, test_home);
   9.218 +    else if (strcmp(test_class_name, "CaseAndDotAddressTests") == 0)
   9.219 +        *test_suite = new CaseAndDotAddressTests(test_class_name, test_home);
   9.220 +    else if (strcmp(test_class_name, "UserIDAliasTests") == 0)
   9.221 +        *test_suite = new UserIDAliasTests(test_class_name, test_home);
   9.222 +    else if (strcmp(test_class_name, "BCCTests") == 0)
   9.223 +        *test_suite = new BCCTests(test_class_name, test_home);
   9.224 +    else if (strcmp(test_class_name, "BlacklistAcceptNewKeyTests") == 0)
   9.225 +        *test_suite = new BlacklistAcceptNewKeyTests(test_class_name, test_home);
   9.226 +    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyUntrustedTests") == 0)
   9.227 +        *test_suite = new DecryptAttachPrivateKeyUntrustedTests(test_class_name, test_home);
   9.228 +    else if (strcmp(test_class_name, "BlacklistTests") == 0)
   9.229 +        *test_suite = new BlacklistTests(test_class_name, test_home);
   9.230 +    else if (strcmp(test_class_name, "RevokeRegenAttachTests") == 0)
   9.231 +        *test_suite = new RevokeRegenAttachTests(test_class_name, test_home);
   9.232 +    else if (strcmp(test_class_name, "PepSubjectReceivedTests") == 0)
   9.233 +        *test_suite = new PepSubjectReceivedTests(test_class_name, test_home);
   9.234 +    else if (strcmp(test_class_name, "SequenceTests") == 0)
   9.235 +        *test_suite = new SequenceTests(test_class_name, test_home);
   9.236 +    else if (strcmp(test_class_name, "EncryptAttachPrivateKeyTests") == 0)
   9.237 +        *test_suite = new EncryptAttachPrivateKeyTests(test_class_name, test_home);
   9.238 +    else if (strcmp(test_class_name, "ExternalRevokeTests") == 0)
   9.239 +        *test_suite = new ExternalRevokeTests(test_class_name, test_home);
   9.240 +    else if (strcmp(test_class_name, "KeyeditTests") == 0)
   9.241 +        *test_suite = new KeyeditTests(test_class_name, test_home);
   9.242      else if (strcmp(test_class_name, "LeastColorGroupTests") == 0)
   9.243          *test_suite = new LeastColorGroupTests(test_class_name, test_home);
   9.244 -    else if (strcmp(test_class_name, "GPGConfFixTests") == 0)
   9.245 -        *test_suite = new GPGConfFixTests(test_class_name, test_home);
   9.246 -    else if (strcmp(test_class_name, "ExternalRevokeTests") == 0)
   9.247 -        *test_suite = new ExternalRevokeTests(test_class_name, test_home);
   9.248 -    else if (strcmp(test_class_name, "EncryptForIdentityTests") == 0)
   9.249 -        *test_suite = new EncryptForIdentityTests(test_class_name, test_home);
   9.250 +    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyTrustedTests") == 0)
   9.251 +        *test_suite = new DecryptAttachPrivateKeyTrustedTests(test_class_name, test_home);
   9.252      else if (strcmp(test_class_name, "TrustwordsTests") == 0)
   9.253          *test_suite = new TrustwordsTests(test_class_name, test_home);
   9.254 -    else if (strcmp(test_class_name, "TrustManipulationTests") == 0)
   9.255 -        *test_suite = new TrustManipulationTests(test_class_name, test_home);
   9.256 +    else if (strcmp(test_class_name, "ReencryptPlusExtraKeysTests") == 0)
   9.257 +        *test_suite = new ReencryptPlusExtraKeysTests(test_class_name, test_home);
   9.258 +    else if (strcmp(test_class_name, "MapAsn1Tests") == 0)
   9.259 +        *test_suite = new MapAsn1Tests(test_class_name, test_home);
   9.260 +    else if (strcmp(test_class_name, "DecorateTests") == 0)
   9.261 +        *test_suite = new DecorateTests(test_class_name, test_home);
   9.262      else if (strcmp(test_class_name, "MessageTwoPointOhTests") == 0)
   9.263          *test_suite = new MessageTwoPointOhTests(test_class_name, test_home);
   9.264 -    else if (strcmp(test_class_name, "EncryptAttachPrivateKeyTests") == 0)
   9.265 -        *test_suite = new EncryptAttachPrivateKeyTests(test_class_name, test_home);
   9.266 -    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyTrustedTests") == 0)
   9.267 -        *test_suite = new DecryptAttachPrivateKeyTrustedTests(test_class_name, test_home);
   9.268 -    else if (strcmp(test_class_name, "IdentityListTests") == 0)
   9.269 -        *test_suite = new IdentityListTests(test_class_name, test_home);
   9.270 -    else if (strcmp(test_class_name, "UserIDAliasTests") == 0)
   9.271 -        *test_suite = new UserIDAliasTests(test_class_name, test_home);
   9.272 +    else if (strcmp(test_class_name, "CrashdumpTests") == 0)
   9.273 +        *test_suite = new CrashdumpTests(test_class_name, test_home);
   9.274 +    else if (strcmp(test_class_name, "StringpairListTests") == 0)
   9.275 +        *test_suite = new StringpairListTests(test_class_name, test_home);
   9.276 +    else if (strcmp(test_class_name, "EncryptForIdentityTests") == 0)
   9.277 +        *test_suite = new EncryptForIdentityTests(test_class_name, test_home);
   9.278 +    else if (strcmp(test_class_name, "TrustManipulationTests") == 0)
   9.279 +        *test_suite = new TrustManipulationTests(test_class_name, test_home);
   9.280 +    else if (strcmp(test_class_name, "AppleMailTests") == 0)
   9.281 +        *test_suite = new AppleMailTests(test_class_name, test_home);
   9.282  }
   9.283  
   9.284  void SuiteMaker::suitemaker_buildlist(const char** test_class_names, int num_to_run, const char* test_home, std::vector<Test::Suite*>& test_suites) {