pw_function: Run fit::function tests from Fuchsia

Change-Id: I7c0ff3c80b4e1f5abe2d0f8c0673318281b78d01
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/109790
Reviewed-by: Alexei Frolov <frolv@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/pw_function/BUILD.gn b/pw_function/BUILD.gn
index aa27963..cceef9b 100644
--- a/pw_function/BUILD.gn
+++ b/pw_function/BUILD.gn
@@ -59,7 +59,10 @@
 }
 
 pw_test_group("tests") {
-  tests = [ ":function_test" ]
+  tests = [
+    ":function_test",
+    "$dir_pw_third_party/fuchsia:function_tests",
+  ]
 }
 
 pw_test("function_test") {
diff --git a/third_party/fuchsia/BUILD.gn b/third_party/fuchsia/BUILD.gn
index 0730b99..ded9255 100644
--- a/third_party/fuchsia/BUILD.gn
+++ b/third_party/fuchsia/BUILD.gn
@@ -17,6 +17,7 @@
 import("$dir_pw_build/python.gni")
 import("$dir_pw_build/target_types.gni")
 import("$dir_pw_docgen/docs.gni")
+import("$dir_pw_unit_test/test.gni")
 
 pw_doc_group("docs") {
   sources = [ "docs.rst" ]
@@ -46,6 +47,17 @@
   ]
 }
 
+pw_test("function_tests") {
+  sources = [ "repo/sdk/lib/fit/test/function_tests.cc" ]
+  deps = [ ":fit" ]
+
+  # Define EXPECT_NULL(), which Pigweed's test framework does not have
+  defines = [ "EXPECT_NULL(arg)=EXPECT_EQ((arg), nullptr)" ]
+
+  # This test does not build with strict warnings, so disable them.
+  remove_configs = [ "$dir_pw_build:strict_warnings" ]
+}
+
 pw_source_set("stdcompat") {
   public_configs = [ ":stdcompat_public_include_path" ]
   public = [