Skip to content

Commit

Permalink
darwin tests: Exchangedata is deprecated on 10.13
Browse files Browse the repository at this point in the history
  • Loading branch information
nathany committed Aug 30, 2018
1 parent f3b063a commit d240111
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions integration_darwin_test.go
Expand Up @@ -7,19 +7,39 @@ package fsnotify
import (
"os"
"path/filepath"
"strconv"
"strings"
"testing"
"time"

"golang.org/x/sys/unix"
)

// darwinVersion returns version os Darwin (17 is macOS 10.13).
func darwinVersion() (int, error) {
s, err := unix.Sysctl("kern.osrelease")
if err != nil {
return 0, err
}
s = strings.Split(s, ".")[0]
return strconv.Atoi(s)
}

// testExchangedataForWatcher tests the watcher with the exchangedata operation on macOS.
//
// This is widely used for atomic saves on macOS, e.g. TextMate and in Apple's NSDocument.
//
// See https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/exchangedata.2.html
// Also see: https://github.com/textmate/textmate/blob/cd016be29489eba5f3c09b7b70b06da134dda550/Frameworks/io/src/swap_file_data.cc#L20
func testExchangedataForWatcher(t *testing.T, watchDir bool) {
osVersion, err := darwinVersion()
if err != nil {
t.Fatal("unable to get Darwin version:", err)
}
if osVersion >= 17 {
t.Skip("Exchangedata is deprecated in macOS 10.13")
}

// Create directory to watch
testDir1 := tempMkdir(t)

Expand Down

0 comments on commit d240111

Please sign in to comment.