Merged in default ENGINE-398
authorKrista Bennett <krista@pep-project.org>
Tue, 14 Aug 2018 07:39:04 +0200
branchENGINE-398
changeset 2818a3737c5de1c0
parent 2817 48e3e80b5d26
parent 2816 0289b8c43cc0
child 2861 43a404e78276
Merged in default
     1.1 --- a/.hgtags	Tue Aug 14 07:38:03 2018 +0200
     1.2 +++ b/.hgtags	Tue Aug 14 07:39:04 2018 +0200
     1.3 @@ -5,3 +5,4 @@
     1.4  3efe9ded2561d3f6d406acbcbcee01b823cb4de8 for_Outlook-1.1.10
     1.5  fa00137505b8528c77efe8df40963f5fef452cad 0.9.0 release
     1.6  b70a6082836b89f8718b23dcba0624d6db318033 ENGINE-323 fixed
     1.7 +d958333b87d0cdda1bb02f50173f1207baade54a Release 1.0.441
     2.1 --- a/build-mac/pEpEngine.xcodeproj/project.pbxproj	Tue Aug 14 07:38:03 2018 +0200
     2.2 +++ b/build-mac/pEpEngine.xcodeproj/project.pbxproj	Tue Aug 14 07:39:04 2018 +0200
     2.3 @@ -686,7 +686,7 @@
     2.4  		64796A371B455AA5004B1C24 /* Project object */ = {
     2.5  			isa = PBXProject;
     2.6  			attributes = {
     2.7 -				LastUpgradeCheck = 0920;
     2.8 +				LastUpgradeCheck = 0940;
     2.9  				ORGANIZATIONNAME = "Edouard Tisserant";
    2.10  				TargetAttributes = {
    2.11  					644297BE1BE11C65002BC73B = {
    2.12 @@ -932,12 +932,14 @@
    2.13  				CLANG_WARN_BOOL_CONVERSION = YES;
    2.14  				CLANG_WARN_COMMA = YES;
    2.15  				CLANG_WARN_CONSTANT_CONVERSION = YES;
    2.16 +				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
    2.17  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
    2.18  				CLANG_WARN_EMPTY_BODY = YES;
    2.19  				CLANG_WARN_ENUM_CONVERSION = YES;
    2.20  				CLANG_WARN_INFINITE_RECURSION = YES;
    2.21  				CLANG_WARN_INT_CONVERSION = YES;
    2.22  				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
    2.23 +				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
    2.24  				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
    2.25  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
    2.26  				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
    2.27 @@ -993,12 +995,14 @@
    2.28  				CLANG_WARN_BOOL_CONVERSION = YES;
    2.29  				CLANG_WARN_COMMA = YES;
    2.30  				CLANG_WARN_CONSTANT_CONVERSION = YES;
    2.31 +				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
    2.32  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
    2.33  				CLANG_WARN_EMPTY_BODY = YES;
    2.34  				CLANG_WARN_ENUM_CONVERSION = YES;
    2.35  				CLANG_WARN_INFINITE_RECURSION = YES;
    2.36  				CLANG_WARN_INT_CONVERSION = YES;
    2.37  				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
    2.38 +				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
    2.39  				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
    2.40  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
    2.41  				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
     3.1 --- a/src/keymanagement.c	Tue Aug 14 07:38:03 2018 +0200
     3.2 +++ b/src/keymanagement.c	Tue Aug 14 07:39:04 2018 +0200
     3.3 @@ -1704,6 +1704,15 @@
     3.4      if (status != PEP_STATUS_OK && status != PEP_GET_KEY_FAILED && status != PEP_KEY_UNSUITABLE)
     3.5          return status;
     3.6      status = PEP_STATUS_OK;
     3.7 +
     3.8 +    bool private = false;
     3.9 +    status = contains_priv_key(session, fpr, &private);
    3.10 +    
    3.11 +    if (status != PEP_STATUS_OK)
    3.12 +        return status;
    3.13 +        
    3.14 +    if (!private)
    3.15 +        return PEP_KEY_UNSUITABLE;
    3.16   
    3.17      if (me->fpr)
    3.18          free(me->fpr);
     4.1 --- a/src/pgp_gpg.c	Tue Aug 14 07:38:03 2018 +0200
     4.2 +++ b/src/pgp_gpg.c	Tue Aug 14 07:39:04 2018 +0200
     4.3 @@ -1305,11 +1305,8 @@
     4.4                      break;
     4.5                  case GPG_ERR_INV_VALUE:
     4.6                      return PEP_ILLEGAL_VALUE;
     4.7 -                case GPG_ERR_GENERAL:
     4.8 +                default:
     4.9                      return PEP_CANNOT_CREATE_KEY;
    4.10 -                default:
    4.11 -                    assert(0);
    4.12 -                    return PEP_UNKNOWN_ERROR;
    4.13              }
    4.14  
    4.15              /* This is the same regardless of whether we got it from genkey or createkey */
     5.1 --- a/test/convenience_scripts/DANGER_delete_keys_silently_w_pattern.py	Tue Aug 14 07:38:03 2018 +0200
     5.2 +++ b/test/convenience_scripts/DANGER_delete_keys_silently_w_pattern.py	Tue Aug 14 07:39:04 2018 +0200
     5.3 @@ -9,7 +9,7 @@
     5.4  
     5.5  args = parser.parse_args()
     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/convenience_scripts/keygen_for_test.py	Tue Aug 14 07:38:03 2018 +0200
     6.2 +++ b/test/convenience_scripts/keygen_for_test.py	Tue Aug 14 07:39:04 2018 +0200
     6.3 @@ -16,7 +16,7 @@
     6.4  pub_path = os.path.join(args.output_root, "pub")
     6.5  priv_path = os.path.join(args.output_root, "priv")
     6.6  
     6.7 -homedir = os.path.join(os.path.expanduser('~'),".gnupg")
     6.8 +homedir = os.path.join(os.path.expanduser('~'),"gnupg")
     6.9  print("GNUPGHOME=" + homedir + "\n")
    6.10  
    6.11  try:
     7.1 --- a/test/python_tests/setup_test.py	Tue Aug 14 07:38:03 2018 +0200
     7.2 +++ b/test/python_tests/setup_test.py	Tue Aug 14 07:39:04 2018 +0200
     7.3 @@ -38,7 +38,7 @@
     7.4      "create own identities as part of the test setup"
     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      import pEp
    7.11      me = pEp.Identity()
     8.1 --- a/test/python_tests/test_handshake.py	Tue Aug 14 07:38:03 2018 +0200
     8.2 +++ b/test/python_tests/test_handshake.py	Tue Aug 14 07:39:04 2018 +0200
     8.3 @@ -20,7 +20,7 @@
     8.4          arthome = "test1"
     8.5  
     8.6          os.environ["HOME"] = os.path.join(mydir, arthome)
     8.7 -        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, '.gnupg')
     8.8 +        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, 'gnupg')
     8.9  
    8.10          os.chdir(os.path.join(mydir, arthome))
    8.11  
    8.12 @@ -79,7 +79,7 @@
    8.13          arthome = "test2"
    8.14  
    8.15          os.environ["HOME"] = os.path.join(mydir, arthome)
    8.16 -        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, '.gnupg')
    8.17 +        os.environ["GNUPGHOME"] = os.path.join(mydir, arthome, 'gnupg')
    8.18  
    8.19          os.chdir(os.path.join(mydir, arthome))
    8.20  
     9.1 --- a/test/src/EngineTestSuite.cc	Tue Aug 14 07:38:03 2018 +0200
     9.2 +++ b/test/src/EngineTestSuite.cc	Tue Aug 14 07:39:04 2018 +0200
     9.3 @@ -85,23 +85,23 @@
     9.4      cout << "home is " << home << endl;
     9.5      assert(temp_test_home.compare(home) != 0);
     9.6      assert(temp_test_home.compare(home + "/") != 0);
     9.7 -    assert(temp_test_home.compare(home + "/.gnupg") != 0);
     9.8 -    assert(temp_test_home.compare(home + ".gnupg") != 0);
     9.9 +    assert(temp_test_home.compare(home + "/gnupg") != 0);
    9.10 +    assert(temp_test_home.compare(home + "gnupg") != 0);
    9.11      assert(temp_test_home.compare(prev_gpg_home) != 0);
    9.12 -    assert(temp_test_home.compare(prev_gpg_home + "/.gnupg") != 0);
    9.13 -    assert(temp_test_home.compare(prev_gpg_home + ".gnupg") != 0);
    9.14 +    assert(temp_test_home.compare(prev_gpg_home + "/gnupg") != 0);
    9.15 +    assert(temp_test_home.compare(prev_gpg_home + "gnupg") != 0);
    9.16  
    9.17      if (temp_test_home.compare(home) == 0 || temp_test_home.compare(home + "/") == 0 ||
    9.18 -        temp_test_home.compare(home + "/.gnupg") == 0 || temp_test_home.compare(home + ".gnupg") == 0 ||
    9.19 -        temp_test_home.compare(prev_gpg_home) == 0 || temp_test_home.compare(prev_gpg_home + "/.gnupg") == 0 ||
    9.20 -        temp_test_home.compare(prev_gpg_home + ".gnupg") == 0)
    9.21 +        temp_test_home.compare(home + "/gnupg") == 0 || temp_test_home.compare(home + "gnupg") == 0 ||
    9.22 +        temp_test_home.compare(prev_gpg_home) == 0 || temp_test_home.compare(prev_gpg_home + "/gnupg") == 0 ||
    9.23 +        temp_test_home.compare(prev_gpg_home + "gnupg") == 0)
    9.24          throw std::runtime_error("SETUP: new GNUPGHOME threatens to mess up user GNUPGHOME (and delete all their keys). NO DICE.");
    9.25      
    9.26  //    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;
    9.27      
    9.28      struct stat buf;
    9.29      
    9.30 -    success = setenv("GNUPGHOME", (temp_test_home + "/.gnupg").c_str(), 1);
    9.31 +    success = setenv("GNUPGHOME", (temp_test_home + "/gnupg").c_str(), 1);
    9.32      if (success != 0)
    9.33          throw std::runtime_error("SETUP: Error when setting GNUPGHOME.");
    9.34  
    9.35 @@ -156,4 +156,5 @@
    9.36  
    9.37  void EngineTestSuite::set_my_name() {
    9.38      my_name = typeid(*this).name();
    9.39 -}
    9.40 \ No newline at end of file
    9.41 +}
    9.42 +
    10.1 --- a/test/src/SuiteMaker.cc	Tue Aug 14 07:38:03 2018 +0200
    10.2 +++ b/test/src/SuiteMaker.cc	Tue Aug 14 07:39:04 2018 +0200
    10.3 @@ -12,159 +12,159 @@
    10.4  #include "SuiteMaker.h"
    10.5  
    10.6  // Begin where we generate stuff
    10.7 -#include "MapAsn1Tests.h"
    10.8 -#include "DecorateTests.h"
    10.9 -#include "EncryptMissingPrivateKeyTests.h"
   10.10 -#include "KeyeditTests.h"
   10.11 -#include "BlacklistAcceptNewKeyTests.h"
   10.12 -#include "DecryptAttachPrivateKeyUntrustedTests.h"
   10.13 -#include "AppleMailTests.h"
   10.14 -#include "CaseAndDotAddressTests.h"
   10.15 -#include "SequenceTests.h"
   10.16 -#include "BCCTests.h"
   10.17 -#include "MessageApiTests.h"
   10.18 -#include "I18nTests.h"
   10.19 -#include "CrashdumpTests.h"
   10.20 -#include "PgpBinaryTests.h"
   10.21 -#include "RevokeRegenAttachTests.h"
   10.22 -#include "BlacklistTests.h"
   10.23 -#include "LeastCommonDenomColorTests.h"
   10.24 -#include "PepSubjectReceivedTests.h"
   10.25 -#include "MistrustUndoTests.h"
   10.26 -#include "StringpairListTests.h"
   10.27 -#include "PgpListKeysTests.h"
   10.28 -#include "ReencryptPlusExtraKeysTests.h"
   10.29  #include "MimeTests.h"
   10.30  #include "BloblistTests.h"
   10.31  #include "NewUpdateIdAndMyselfTests.h"
   10.32 +#include "I18nTests.h"
   10.33 +#include "IdentityListTests.h"
   10.34 +#include "PgpBinaryTests.h"
   10.35 +#include "MistrustUndoTests.h"
   10.36 +#include "LeastCommonDenomColorTests.h"
   10.37  #include "StringlistTests.h"
   10.38 -#include "LeastColorGroupTests.h"
   10.39 +#include "PgpListKeysTests.h"
   10.40 +#include "MessageApiTests.h"
   10.41 +#include "EncryptMissingPrivateKeyTests.h"
   10.42 +#include "CaseAndDotAddressTests.h"
   10.43 +#include "UserIDAliasTests.h"
   10.44 +#include "BCCTests.h"
   10.45 +#include "BlacklistAcceptNewKeyTests.h"
   10.46 +#include "DecryptAttachPrivateKeyUntrustedTests.h"
   10.47 +#include "BlacklistTests.h"
   10.48 +#include "RevokeRegenAttachTests.h"
   10.49 +#include "PepSubjectReceivedTests.h"
   10.50 +#include "SequenceTests.h"
   10.51 +#include "EncryptAttachPrivateKeyTests.h"
   10.52  #include "ExternalRevokeTests.h"
   10.53 +#include "KeyeditTests.h"
   10.54 +#include "LeastColorGroupTests.h"
   10.55 +#include "DecryptAttachPrivateKeyTrustedTests.h"
   10.56 +#include "TrustwordsTests.h"
   10.57 +#include "ReencryptPlusExtraKeysTests.h"
   10.58 +#include "MapAsn1Tests.h"
   10.59 +#include "DecorateTests.h"
   10.60 +#include "MessageTwoPointOhTests.h"
   10.61 +#include "CrashdumpTests.h"
   10.62 +#include "StringpairListTests.h"
   10.63  #include "EncryptForIdentityTests.h"
   10.64 -#include "TrustwordsTests.h"
   10.65  #include "TrustManipulationTests.h"
   10.66 -#include "MessageTwoPointOhTests.h"
   10.67 -#include "EncryptAttachPrivateKeyTests.h"
   10.68 -#include "DecryptAttachPrivateKeyTrustedTests.h"
   10.69 -#include "IdentityListTests.h"
   10.70 -#include "UserIDAliasTests.h"
   10.71 +#include "AppleMailTests.h"
   10.72  
   10.73  
   10.74  const char* SuiteMaker::all_suites[] = {
   10.75 -    "MapAsn1Tests",
   10.76 -    "DecorateTests",
   10.77 -    "EncryptMissingPrivateKeyTests",
   10.78 -    "KeyeditTests",
   10.79 -    "BlacklistAcceptNewKeyTests",
   10.80 -    "DecryptAttachPrivateKeyUntrustedTests",
   10.81 -    "AppleMailTests",
   10.82 -    "CaseAndDotAddressTests",
   10.83 -    "SequenceTests",
   10.84 -    "BCCTests",
   10.85 -    "MessageApiTests",
   10.86 -    "I18nTests",
   10.87 -    "CrashdumpTests",
   10.88 -    "PgpBinaryTests",
   10.89 -    "RevokeRegenAttachTests",
   10.90 -    "BlacklistTests",
   10.91 -    "LeastCommonDenomColorTests",
   10.92 -    "PepSubjectReceivedTests",
   10.93 -    "MistrustUndoTests",
   10.94 -    "StringpairListTests",
   10.95 -    "PgpListKeysTests",
   10.96 -    "ReencryptPlusExtraKeysTests",
   10.97      "MimeTests",
   10.98      "BloblistTests",
   10.99      "NewUpdateIdAndMyselfTests",
  10.100 +    "I18nTests",
  10.101 +    "IdentityListTests",
  10.102 +    "PgpBinaryTests",
  10.103 +    "MistrustUndoTests",
  10.104 +    "LeastCommonDenomColorTests",
  10.105      "StringlistTests",
  10.106 -    "LeastColorGroupTests",
  10.107 +    "PgpListKeysTests",
  10.108 +    "MessageApiTests",
  10.109 +    "EncryptMissingPrivateKeyTests",
  10.110 +    "CaseAndDotAddressTests",
  10.111 +    "UserIDAliasTests",
  10.112 +    "BCCTests",
  10.113 +    "BlacklistAcceptNewKeyTests",
  10.114 +    "DecryptAttachPrivateKeyUntrustedTests",
  10.115 +    "BlacklistTests",
  10.116 +    "RevokeRegenAttachTests",
  10.117 +    "PepSubjectReceivedTests",
  10.118 +    "SequenceTests",
  10.119 +    "EncryptAttachPrivateKeyTests",
  10.120      "ExternalRevokeTests",
  10.121 +    "KeyeditTests",
  10.122 +    "LeastColorGroupTests",
  10.123 +    "DecryptAttachPrivateKeyTrustedTests",
  10.124 +    "TrustwordsTests",
  10.125 +    "ReencryptPlusExtraKeysTests",
  10.126 +    "MapAsn1Tests",
  10.127 +    "DecorateTests",
  10.128 +    "MessageTwoPointOhTests",
  10.129 +    "CrashdumpTests",
  10.130 +    "StringpairListTests",
  10.131      "EncryptForIdentityTests",
  10.132 -    "TrustwordsTests",
  10.133      "TrustManipulationTests",
  10.134 -    "MessageTwoPointOhTests",
  10.135 -    "EncryptAttachPrivateKeyTests",
  10.136 -    "DecryptAttachPrivateKeyTrustedTests",
  10.137 -    "IdentityListTests",
  10.138 -    "UserIDAliasTests",
  10.139 +    "AppleMailTests",
  10.140  };
  10.141  
  10.142  // This file is generated, so magic constants are ok.
  10.143  int SuiteMaker::num_suites = 36;
  10.144  
  10.145  void SuiteMaker::suitemaker_build(const char* test_class_name, const char* test_home, Test::Suite** test_suite) {
  10.146 -    if (strcmp(test_class_name, "MapAsn1Tests") == 0)
  10.147 -        *test_suite = new MapAsn1Tests(test_class_name, test_home);
  10.148 -    else if (strcmp(test_class_name, "DecorateTests") == 0)
  10.149 -        *test_suite = new DecorateTests(test_class_name, test_home);
  10.150 -    else if (strcmp(test_class_name, "EncryptMissingPrivateKeyTests") == 0)
  10.151 -        *test_suite = new EncryptMissingPrivateKeyTests(test_class_name, test_home);
  10.152 -    else if (strcmp(test_class_name, "KeyeditTests") == 0)
  10.153 -        *test_suite = new KeyeditTests(test_class_name, test_home);
  10.154 -    else if (strcmp(test_class_name, "BlacklistAcceptNewKeyTests") == 0)
  10.155 -        *test_suite = new BlacklistAcceptNewKeyTests(test_class_name, test_home);
  10.156 -    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyUntrustedTests") == 0)
  10.157 -        *test_suite = new DecryptAttachPrivateKeyUntrustedTests(test_class_name, test_home);
  10.158 -    else if (strcmp(test_class_name, "AppleMailTests") == 0)
  10.159 -        *test_suite = new AppleMailTests(test_class_name, test_home);
  10.160 -    else if (strcmp(test_class_name, "CaseAndDotAddressTests") == 0)
  10.161 -        *test_suite = new CaseAndDotAddressTests(test_class_name, test_home);
  10.162 -    else if (strcmp(test_class_name, "SequenceTests") == 0)
  10.163 -        *test_suite = new SequenceTests(test_class_name, test_home);
  10.164 -    else if (strcmp(test_class_name, "BCCTests") == 0)
  10.165 -        *test_suite = new BCCTests(test_class_name, test_home);
  10.166 -    else if (strcmp(test_class_name, "MessageApiTests") == 0)
  10.167 -        *test_suite = new MessageApiTests(test_class_name, test_home);
  10.168 -    else if (strcmp(test_class_name, "I18nTests") == 0)
  10.169 -        *test_suite = new I18nTests(test_class_name, test_home);
  10.170 -    else if (strcmp(test_class_name, "CrashdumpTests") == 0)
  10.171 -        *test_suite = new CrashdumpTests(test_class_name, test_home);
  10.172 -    else if (strcmp(test_class_name, "PgpBinaryTests") == 0)
  10.173 -        *test_suite = new PgpBinaryTests(test_class_name, test_home);
  10.174 -    else if (strcmp(test_class_name, "RevokeRegenAttachTests") == 0)
  10.175 -        *test_suite = new RevokeRegenAttachTests(test_class_name, test_home);
  10.176 -    else if (strcmp(test_class_name, "BlacklistTests") == 0)
  10.177 -        *test_suite = new BlacklistTests(test_class_name, test_home);
  10.178 -    else if (strcmp(test_class_name, "LeastCommonDenomColorTests") == 0)
  10.179 -        *test_suite = new LeastCommonDenomColorTests(test_class_name, test_home);
  10.180 -    else if (strcmp(test_class_name, "PepSubjectReceivedTests") == 0)
  10.181 -        *test_suite = new PepSubjectReceivedTests(test_class_name, test_home);
  10.182 -    else if (strcmp(test_class_name, "MistrustUndoTests") == 0)
  10.183 -        *test_suite = new MistrustUndoTests(test_class_name, test_home);
  10.184 -    else if (strcmp(test_class_name, "StringpairListTests") == 0)
  10.185 -        *test_suite = new StringpairListTests(test_class_name, test_home);
  10.186 -    else if (strcmp(test_class_name, "PgpListKeysTests") == 0)
  10.187 -        *test_suite = new PgpListKeysTests(test_class_name, test_home);
  10.188 -    else if (strcmp(test_class_name, "ReencryptPlusExtraKeysTests") == 0)
  10.189 -        *test_suite = new ReencryptPlusExtraKeysTests(test_class_name, test_home);
  10.190 -    else if (strcmp(test_class_name, "MimeTests") == 0)
  10.191 +    if (strcmp(test_class_name, "MimeTests") == 0)
  10.192          *test_suite = new MimeTests(test_class_name, test_home);
  10.193      else if (strcmp(test_class_name, "BloblistTests") == 0)
  10.194          *test_suite = new BloblistTests(test_class_name, test_home);
  10.195      else if (strcmp(test_class_name, "NewUpdateIdAndMyselfTests") == 0)
  10.196          *test_suite = new NewUpdateIdAndMyselfTests(test_class_name, test_home);
  10.197 +    else if (strcmp(test_class_name, "I18nTests") == 0)
  10.198 +        *test_suite = new I18nTests(test_class_name, test_home);
  10.199 +    else if (strcmp(test_class_name, "IdentityListTests") == 0)
  10.200 +        *test_suite = new IdentityListTests(test_class_name, test_home);
  10.201 +    else if (strcmp(test_class_name, "PgpBinaryTests") == 0)
  10.202 +        *test_suite = new PgpBinaryTests(test_class_name, test_home);
  10.203 +    else if (strcmp(test_class_name, "MistrustUndoTests") == 0)
  10.204 +        *test_suite = new MistrustUndoTests(test_class_name, test_home);
  10.205 +    else if (strcmp(test_class_name, "LeastCommonDenomColorTests") == 0)
  10.206 +        *test_suite = new LeastCommonDenomColorTests(test_class_name, test_home);
  10.207      else if (strcmp(test_class_name, "StringlistTests") == 0)
  10.208          *test_suite = new StringlistTests(test_class_name, test_home);
  10.209 +    else if (strcmp(test_class_name, "PgpListKeysTests") == 0)
  10.210 +        *test_suite = new PgpListKeysTests(test_class_name, test_home);
  10.211 +    else if (strcmp(test_class_name, "MessageApiTests") == 0)
  10.212 +        *test_suite = new MessageApiTests(test_class_name, test_home);
  10.213 +    else if (strcmp(test_class_name, "EncryptMissingPrivateKeyTests") == 0)
  10.214 +        *test_suite = new EncryptMissingPrivateKeyTests(test_class_name, test_home);
  10.215 +    else if (strcmp(test_class_name, "CaseAndDotAddressTests") == 0)
  10.216 +        *test_suite = new CaseAndDotAddressTests(test_class_name, test_home);
  10.217 +    else if (strcmp(test_class_name, "UserIDAliasTests") == 0)
  10.218 +        *test_suite = new UserIDAliasTests(test_class_name, test_home);
  10.219 +    else if (strcmp(test_class_name, "BCCTests") == 0)
  10.220 +        *test_suite = new BCCTests(test_class_name, test_home);
  10.221 +    else if (strcmp(test_class_name, "BlacklistAcceptNewKeyTests") == 0)
  10.222 +        *test_suite = new BlacklistAcceptNewKeyTests(test_class_name, test_home);
  10.223 +    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyUntrustedTests") == 0)
  10.224 +        *test_suite = new DecryptAttachPrivateKeyUntrustedTests(test_class_name, test_home);
  10.225 +    else if (strcmp(test_class_name, "BlacklistTests") == 0)
  10.226 +        *test_suite = new BlacklistTests(test_class_name, test_home);
  10.227 +    else if (strcmp(test_class_name, "RevokeRegenAttachTests") == 0)
  10.228 +        *test_suite = new RevokeRegenAttachTests(test_class_name, test_home);
  10.229 +    else if (strcmp(test_class_name, "PepSubjectReceivedTests") == 0)
  10.230 +        *test_suite = new PepSubjectReceivedTests(test_class_name, test_home);
  10.231 +    else if (strcmp(test_class_name, "SequenceTests") == 0)
  10.232 +        *test_suite = new SequenceTests(test_class_name, test_home);
  10.233 +    else if (strcmp(test_class_name, "EncryptAttachPrivateKeyTests") == 0)
  10.234 +        *test_suite = new EncryptAttachPrivateKeyTests(test_class_name, test_home);
  10.235 +    else if (strcmp(test_class_name, "ExternalRevokeTests") == 0)
  10.236 +        *test_suite = new ExternalRevokeTests(test_class_name, test_home);
  10.237 +    else if (strcmp(test_class_name, "KeyeditTests") == 0)
  10.238 +        *test_suite = new KeyeditTests(test_class_name, test_home);
  10.239      else if (strcmp(test_class_name, "LeastColorGroupTests") == 0)
  10.240          *test_suite = new LeastColorGroupTests(test_class_name, test_home);
  10.241 -    else if (strcmp(test_class_name, "ExternalRevokeTests") == 0)
  10.242 -        *test_suite = new ExternalRevokeTests(test_class_name, test_home);
  10.243 -    else if (strcmp(test_class_name, "EncryptForIdentityTests") == 0)
  10.244 -        *test_suite = new EncryptForIdentityTests(test_class_name, test_home);
  10.245 +    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyTrustedTests") == 0)
  10.246 +        *test_suite = new DecryptAttachPrivateKeyTrustedTests(test_class_name, test_home);
  10.247      else if (strcmp(test_class_name, "TrustwordsTests") == 0)
  10.248          *test_suite = new TrustwordsTests(test_class_name, test_home);
  10.249 -    else if (strcmp(test_class_name, "TrustManipulationTests") == 0)
  10.250 -        *test_suite = new TrustManipulationTests(test_class_name, test_home);
  10.251 +    else if (strcmp(test_class_name, "ReencryptPlusExtraKeysTests") == 0)
  10.252 +        *test_suite = new ReencryptPlusExtraKeysTests(test_class_name, test_home);
  10.253 +    else if (strcmp(test_class_name, "MapAsn1Tests") == 0)
  10.254 +        *test_suite = new MapAsn1Tests(test_class_name, test_home);
  10.255 +    else if (strcmp(test_class_name, "DecorateTests") == 0)
  10.256 +        *test_suite = new DecorateTests(test_class_name, test_home);
  10.257      else if (strcmp(test_class_name, "MessageTwoPointOhTests") == 0)
  10.258          *test_suite = new MessageTwoPointOhTests(test_class_name, test_home);
  10.259 -    else if (strcmp(test_class_name, "EncryptAttachPrivateKeyTests") == 0)
  10.260 -        *test_suite = new EncryptAttachPrivateKeyTests(test_class_name, test_home);
  10.261 -    else if (strcmp(test_class_name, "DecryptAttachPrivateKeyTrustedTests") == 0)
  10.262 -        *test_suite = new DecryptAttachPrivateKeyTrustedTests(test_class_name, test_home);
  10.263 -    else if (strcmp(test_class_name, "IdentityListTests") == 0)
  10.264 -        *test_suite = new IdentityListTests(test_class_name, test_home);
  10.265 -    else if (strcmp(test_class_name, "UserIDAliasTests") == 0)
  10.266 -        *test_suite = new UserIDAliasTests(test_class_name, test_home);
  10.267 +    else if (strcmp(test_class_name, "CrashdumpTests") == 0)
  10.268 +        *test_suite = new CrashdumpTests(test_class_name, test_home);
  10.269 +    else if (strcmp(test_class_name, "StringpairListTests") == 0)
  10.270 +        *test_suite = new StringpairListTests(test_class_name, test_home);
  10.271 +    else if (strcmp(test_class_name, "EncryptForIdentityTests") == 0)
  10.272 +        *test_suite = new EncryptForIdentityTests(test_class_name, test_home);
  10.273 +    else if (strcmp(test_class_name, "TrustManipulationTests") == 0)
  10.274 +        *test_suite = new TrustManipulationTests(test_class_name, test_home);
  10.275 +    else if (strcmp(test_class_name, "AppleMailTests") == 0)
  10.276 +        *test_suite = new AppleMailTests(test_class_name, test_home);
  10.277  }
  10.278  
  10.279  void SuiteMaker::suitemaker_buildlist(const char** test_class_names, int num_to_run, const char* test_home, std::vector<Test::Suite*>& test_suites) {