diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index a148b8f9..d45fe36f 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -132,6 +132,7 @@ java.lang.Object java.lang.Process java.lang.ProcessHandle + java.lang.ProcessHandle$Info java.lang.ProcessBuilder java.lang.ProcessBuilder$Redirect java.lang.Runtime @@ -247,6 +248,7 @@ java.util.Locale java.util.Map java.util.MissingResourceException + java.util.Optional java.util.Properties java.util.Set java.util.UUID @@ -344,6 +346,8 @@ java.lang.Process (instance? java.lang.ProcessHandle v) java.lang.ProcessHandle + (instance? java.lang.ProcessHandle$Info v) + java.lang.ProcessHandle$Info ;; added for calling .put on .environment from ProcessBuilder (instance? java.util.Map v) java.util.Map diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index 4fb329b3..7c38d419 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -468,8 +468,8 @@ ;; TODO: refactor into individual unit tests ;; One for downloading a small file and one for unzipping. #_(is (try (= 6 (bb nil (io/file "test" "babashka" "scripts" "download_and_extract_zip.bb"))) - (catch Exception e - (is (str/includes? (str e) "timed out")))))) + (catch Exception e + (is (str/includes? (str e) "timed out")))))) (deftest get-message-on-exception-info-test (is "foo" (bb nil "(try (throw (ex-info \"foo\" {})) (catch Exception e (.getMessage e)))"))) @@ -639,6 +639,14 @@ true"))) (is (str/blank? (with-out-str (main/main "doc" "non-existing")))) (is (= 1 (main/main "doc" "non-existing"))))) +(deftest process-handler-info-test + (when test-utils/native? + (is (= ["-e" "(vec (.get (.arguments (.info (java.lang.ProcessHandle/current)))))"] + (bb nil "-e" "(vec (.get (.arguments (.info (java.lang.ProcessHandle/current)))))"))) + (is (str/ends-with? + (bb nil "-e" "(.get (.command (.info (java.lang.ProcessHandle/current))))") + "bb")))) + ;;;; Scratch (comment