test/jdk/tools/jpackage/macosx/SigningPackageTest.java
branchJDK-8200758-branch
changeset 58648 3bf53ffa9ae7
parent 58464 d82489644b15
child 58761 88e2753a2334
equal deleted inserted replaced
58647:2c43b89b1679 58648:3bf53ffa9ae7
    58     private static void verifyDMG(JPackageCommand cmd) {
    58     private static void verifyDMG(JPackageCommand cmd) {
    59         Path outputBundle = cmd.outputBundle();
    59         Path outputBundle = cmd.outputBundle();
    60         SigningBase.verifyCodesign(outputBundle, false);
    60         SigningBase.verifyCodesign(outputBundle, false);
    61     }
    61     }
    62 
    62 
    63     private static void verifyAppImageInDMG(JPackageCommand cmd) throws Exception {
    63     private static void verifyAppImageInDMG(JPackageCommand cmd) {
    64         Path disk = Paths.get("/Volumes", cmd.name());
    64         MacHelper.withExplodedDmg(cmd, disk -> {
    65         try {
       
    66             new Executor()
       
    67                     .setExecutable("/usr/bin/hdiutil")
       
    68                     .addArgument("attach").addArgument(cmd.outputBundle())
       
    69                     .execute().assertExitCodeIsZero();
       
    70 
       
    71             Path appImageInDMG = disk.resolve(cmd.name() + ".app");
    65             Path appImageInDMG = disk.resolve(cmd.name() + ".app");
    72             Path launcherPath = appImageInDMG.resolve(Path.of("Contents", "MacOS", cmd.name()));
    66             Path launcherPath = appImageInDMG.resolve(Path.of("Contents", "MacOS", cmd.name()));
    73             SigningBase.verifyCodesign(launcherPath, true);
    67             SigningBase.verifyCodesign(launcherPath, true);
    74             SigningBase.verifyCodesign(appImageInDMG, true);
    68             SigningBase.verifyCodesign(appImageInDMG, true);
    75             SigningBase.verifySpctl(appImageInDMG, "exec");
    69             SigningBase.verifySpctl(appImageInDMG, "exec");
    76         } finally {
    70         });
    77             new Executor()
       
    78                     .setExecutable("/usr/bin/hdiutil")
       
    79                     .addArgument("detach").addArgument(disk)
       
    80                     .execute().assertExitCodeIsZero();
       
    81         }
       
    82     }
    71     }
    83 
    72 
    84     public static void main(String[] args) throws Exception {
    73     public static void main(String[] args) throws Exception {
    85         TKit.run(args, () -> {
    74         TKit.run(args, () -> {
    86             SigningCheck.checkCertificates();
    75             SigningCheck.checkCertificates();
    92                         cmd.addArguments("--mac-sign",
    81                         cmd.addArguments("--mac-sign",
    93                                 "--mac-signing-key-user-name", SigningBase.DEV_NAME,
    82                                 "--mac-signing-key-user-name", SigningBase.DEV_NAME,
    94                                 "--mac-signing-keychain", "jpackagerTest.keychain");
    83                                 "--mac-signing-keychain", "jpackagerTest.keychain");
    95                     })
    84                     })
    96                     .forTypes(PackageType.MAC_PKG)
    85                     .forTypes(PackageType.MAC_PKG)
    97                     .addBundleVerifier(cmd -> {
    86                     .addBundleVerifier(SigningPackageTest::verifyPKG)
    98                         verifyPKG(cmd);
       
    99                     })
       
   100                     .forTypes(PackageType.MAC_DMG)
    87                     .forTypes(PackageType.MAC_DMG)
   101                     .addBundleVerifier(cmd -> {
    88                     .addBundleVerifier(SigningPackageTest::verifyDMG)
   102                         verifyDMG(cmd);
    89                     .addBundleVerifier(SigningPackageTest::verifyAppImageInDMG)
   103                         verifyAppImageInDMG(cmd);
       
   104                     })
       
   105                     .run();
    90                     .run();
   106         });
    91         });
   107     }
    92     }
   108 }
    93 }