Implement WriteAtomically using write/fsync on all platforms, and enable (#18320)

diff --git a/fml/platform/posix/file_posix.cc b/fml/platform/posix/file_posix.cc
index ab64b5c..f6a9094 100644
--- a/fml/platform/posix/file_posix.cc
+++ b/fml/platform/posix/file_posix.cc
@@ -206,15 +206,23 @@
     return false;
   }
 
-  FileMapping mapping(temp_file, {FileMapping::Protection::kWrite});
-  if (mapping.GetMutableMapping() == nullptr ||
-      data.GetSize() != mapping.GetSize()) {
-    return false;
+  ssize_t remaining = data.GetSize();
+  ssize_t written = 0;
+  ssize_t offset = 0;
+
+  while (remaining > 0) {
+    written = FML_HANDLE_EINTR(
+        ::write(temp_file.get(), data.GetMapping() + offset, remaining));
+
+    if (written == -1) {
+      return false;
+    }
+
+    remaining -= written;
+    offset += written;
   }
 
-  ::memcpy(mapping.GetMutableMapping(), data.GetMapping(), data.GetSize());
-
-  if (::msync(mapping.GetMutableMapping(), data.GetSize(), MS_SYNC) != 0) {
+  if (::fsync(temp_file.get()) != 0) {
     return false;
   }
 
diff --git a/testing/fuchsia/meta/fuchsia_test.cmx b/testing/fuchsia/meta/fuchsia_test.cmx
index 02ac947..9a01e29 100644
--- a/testing/fuchsia/meta/fuchsia_test.cmx
+++ b/testing/fuchsia/meta/fuchsia_test.cmx
@@ -6,7 +6,8 @@
     "features": [
       "vulkan",
       "deprecated-ambient-replace-as-executable",
-      "isolated-cache-storage"
+      "isolated-cache-storage",
+      "isolated-temp"
     ],
     "services": [
       "fuchsia.accessibility.semantics.SemanticsManager",
diff --git a/testing/fuchsia/run_tests.sh b/testing/fuchsia/run_tests.sh
index 2c39beb..44c6057 100755
--- a/testing/fuchsia/run_tests.sh
+++ b/testing/fuchsia/run_tests.sh
@@ -100,7 +100,7 @@
 ./fuchsia_ctl -d $device_name test \
     -f fml_tests-0.far  \
     -t fml_tests \
-    -a "--gtest_filter=-FileTest*" \
+    -a "--gtest_filter=-FileTest.CanTruncateAndWrite:FileTest.CreateDirectoryStructure" \
     --identity-file $pkey \
     --timeout-seconds $test_timeout_seconds \
     --packages-directory packages