chore(tests): unbreak tests on Windows (#1775)

Currently [appveyor
tests](https://ci.appveyor.com/project/manishrjain/badger/builds/42502297)
are failing in multiple places on Windows.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg"
height="34" align="absmiddle"
alt="Reviewable"/>](https://reviewable.io/reviews/dgraph-io/badger/1775)
<!-- Reviewable:end -->
diff --git a/db2_test.go b/db2_test.go
index f92bc09..2e2e45e 100644
--- a/db2_test.go
+++ b/db2_test.go
@@ -685,7 +685,7 @@
 		err := db.Update(func(txn *Txn) error {
 			key := []byte(fmt.Sprintf("%d", i))
 			v := []byte("barValuebarValuebarValuebarValuebarValue")
-			require.Greater(t, len(v), db.valueThreshold())
+			require.Greater(t, int64(len(v)), db.valueThreshold())
 
 			//32 bytes length and now it's not working
 			err := txn.Set(key, v)
@@ -710,6 +710,7 @@
 	// Don't use vlog.Close here. We don't want to fix the file size. Only un-mmap
 	// the data so that we can truncate the file durning the next vlog.Open.
 	require.NoError(t, z.Munmap(db.vlog.filesMap[db.vlog.maxFid].Data))
+	require.NoError(t, db.mt.wal.Close(-1))
 	for _, f := range db.vlog.filesMap {
 		require.NoError(t, f.Fd.Close())
 	}
diff --git a/db_test.go b/db_test.go
index c698df2..5cc1ada 100644
--- a/db_test.go
+++ b/db_test.go
@@ -2234,11 +2234,13 @@
 
 	ops.ReadOnly = true
 	db, err = Open(ops)
-	require.NoError(t, err)
-	require.NoError(t, db.Close())
+	if runtime.GOOS == "windows" {
+		require.Equal(t, err, ErrWindowsNotSupported)
+	} else {
+		require.NoError(t, err)
+		require.NoError(t, db.Close())
+	}
 
-	db, err = Open(ops)
-	require.NoError(t, err)
 	var count int
 	read := func() {
 		count = 0
@@ -2256,9 +2258,13 @@
 			return nil
 		})
 	}
-	read()
-	require.Equal(t, 10, count)
-	require.NoError(t, db.Close())
+	if runtime.GOOS != "windows" {
+		db, err = Open(ops)
+		require.NoError(t, err)
+		read()
+		require.Equal(t, 10, count)
+		require.NoError(t, db.Close())
+	}
 
 	ops.ReadOnly = false
 	db, err = Open(ops)
@@ -2279,10 +2285,14 @@
 
 	ops.ReadOnly = true
 	db, err = Open(ops)
-	require.NoError(t, err)
-	read()
-	require.Equal(t, 20, count)
-	require.NoError(t, db.Close())
+	if runtime.GOOS == "windows" {
+		require.Equal(t, err, ErrWindowsNotSupported)
+	} else {
+		require.NoError(t, err)
+		read()
+		require.Equal(t, 20, count)
+		require.NoError(t, db.Close())
+	}
 }
 
 func TestBannedPrefixes(t *testing.T) {
diff --git a/iterator_test.go b/iterator_test.go
index e124eae..b64e0d5 100644
--- a/iterator_test.go
+++ b/iterator_test.go
@@ -24,6 +24,7 @@
 	"math/rand"
 	"os"
 	"path/filepath"
+	"runtime"
 	"strings"
 	"testing"
 
@@ -303,6 +304,11 @@
 
 	opts.ReadOnly = true
 	db, err = Open(opts)
+	if runtime.GOOS == "windows" {
+		require.Equal(t, err, ErrWindowsNotSupported)
+		return
+	}
+
 	require.NoError(t, err)
 	defer func() {
 		require.NoError(t, db.Close())
diff --git a/pb/protos_test.go b/pb/protos_test.go
index 723c81e..f2e6e46 100644
--- a/pb/protos_test.go
+++ b/pb/protos_test.go
@@ -17,6 +17,7 @@
 
 import (
 	"os/exec"
+	"runtime"
 	"testing"
 
 	"github.com/stretchr/testify/require"
@@ -32,6 +33,9 @@
 }
 
 func TestProtosRegenerate(t *testing.T) {
+	if runtime.GOOS == "windows" {
+		t.Skip("protobuf regeneration is not supported on Windows")
+	}
 	err := Exec("./gen.sh")
 	require.NoError(t, err, "Got error while regenerating protos: %v\n", err)
 
diff --git a/value_test.go b/value_test.go
index 2339743..e0ef4a8 100644
--- a/value_test.go
+++ b/value_test.go
@@ -24,6 +24,7 @@
 	"math/rand"
 	"os"
 	"reflect"
+	"runtime"
 	"sync"
 	"testing"
 	"time"
@@ -726,8 +727,12 @@
 	opts.ReadOnly = true
 	// Badger should fail a read-only open with values to replay
 	_, err = Open(opts)
-	require.Error(t, err)
-	require.Regexp(t, "Log truncate required", err.Error())
+	if runtime.GOOS == "windows" {
+		require.Equal(t, err, ErrWindowsNotSupported)
+	} else {
+		require.Error(t, err)
+		require.Regexp(t, "Log truncate required", err.Error())
+	}
 }
 
 func TestValueLogTrigger(t *testing.T) {
@@ -796,6 +801,10 @@
 
 // This test creates two mem files and corrupts the last bit of the first file.
 func TestPenultimateMemCorruption(t *testing.T) {
+	if runtime.GOOS == "windows" {
+		t.Skip("skipping corruption tests on Windows since it does not allow removal of mmaped files")
+	}
+
 	dir, err := ioutil.TempDir("", "badger-test")
 	require.NoError(t, err)
 	defer removeDir(dir)