tests: Add support for getting corefile patterns on FreeBSD

Type: improvement
Change-Id: I960edc05a9a77eb55f67cb1ec01d2b3122298ef8
Signed-off-by: Tom Jones <thj@freebsd.org>
diff --git a/test/requirements.txt b/test/requirements.txt
index beb338d..c01d311 100644
--- a/test/requirements.txt
+++ b/test/requirements.txt
@@ -23,3 +23,4 @@
 black                                   # MIT https://github.com/psf/black
 pycryptodome                            # BSD, Public Domain
 sh                                      # MIT https://github.com/amoffat/sh
+sysctl; platform_system == "FreeBSD"	# BSD
diff --git a/test/util.py b/test/util.py
index 8e4c907..59957a7 100644
--- a/test/util.py
+++ b/test/util.py
@@ -5,6 +5,7 @@
 import socket
 from socket import AF_INET6
 import os.path
+import platform
 from copy import deepcopy
 from collections import UserDict
 
@@ -109,8 +110,13 @@
 
 
 def get_core_pattern():
-    with open("/proc/sys/kernel/core_pattern", "r") as f:
-        corefmt = f.read().strip()
+    if platform.uname().system == "FreeBSD":
+        import sysctl
+
+        corefmt = sysctl.filter("kern.corefile")[0].value
+    elif platform.uname().system == "Linux":
+        with open("/proc/sys/kernel/core_pattern", "r") as f:
+            corefmt = f.read().strip()
     return corefmt