Skip to content

Commit

Permalink
Remove relative import and fix tests
Browse files Browse the repository at this point in the history
The relative import causes dep to fail and the tests were not properly
building due to OS packaging issues.
  • Loading branch information
tylertreat committed Dec 29, 2018
1 parent 60d1a55 commit 2ea32ac
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 46 deletions.
1 change: 1 addition & 0 deletions consts.c.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

int main(int argc, char *argvc[]) {
pcomment("** This file is automatically generated from consts.c.txt **\n");
pcomment("+build !windows\n");
ppackage("gommap");
ptype(ProtFlags, uint);
pconstblock(
Expand Down
33 changes: 17 additions & 16 deletions consts.go
Original file line number Diff line number Diff line change
@@ -1,36 +1,37 @@
// ** This file is automatically generated from consts.c.txt **
// +build !windows

package gommap

type ProtFlags uint

const (
PROT_NONE ProtFlags = 0x0
PROT_READ ProtFlags = 0x1
PROT_WRITE ProtFlags = 0x2
PROT_EXEC ProtFlags = 0x4
PROT_NONE ProtFlags = 0x0
PROT_READ ProtFlags = 0x1
PROT_WRITE ProtFlags = 0x2
PROT_EXEC ProtFlags = 0x4
)

type MapFlags uint

const (
MAP_SHARED MapFlags = 0x1
MAP_PRIVATE MapFlags = 0x2
MAP_FIXED MapFlags = 0x10
MAP_ANONYMOUS MapFlags = 0x20
MAP_GROWSDOWN MapFlags = 0x100
MAP_LOCKED MapFlags = 0x2000
MAP_NONBLOCK MapFlags = 0x10000
MAP_NORESERVE MapFlags = 0x4000
MAP_POPULATE MapFlags = 0x8000
MAP_SHARED MapFlags = 0x1
MAP_PRIVATE MapFlags = 0x2
MAP_FIXED MapFlags = 0x10
MAP_ANONYMOUS MapFlags = 0x20
MAP_GROWSDOWN MapFlags = 0x100
MAP_LOCKED MapFlags = 0x2000
MAP_NONBLOCK MapFlags = 0x10000
MAP_NORESERVE MapFlags = 0x4000
MAP_POPULATE MapFlags = 0x8000
)

type SyncFlags uint

const (
MS_SYNC SyncFlags = 0x4
MS_ASYNC SyncFlags = 0x1
MS_INVALIDATE SyncFlags = 0x2
MS_SYNC SyncFlags = 0x4
MS_ASYNC SyncFlags = 0x1
MS_INVALIDATE SyncFlags = 0x2
)

type AdviseFlags uint
Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions gommap.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// +build !windows

// This package offers the MMap type that manipulates a memory mapped file or
// device.
//
Expand Down
35 changes: 18 additions & 17 deletions gommap_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package gommap_test
// +build !windows

package gommap

import (
"github.com/tysontate/gommap"
"io/ioutil"
. "launchpad.net/gocheck"
"os"
Expand Down Expand Up @@ -37,33 +38,33 @@ func (s *S) TearDownTest(c *C) {
}

func (s *S) TestUnsafeUnmap(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
c.Assert(mmap.UnsafeUnmap(), IsNil)
}

func (s *S) TestReadWrite(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

mmap[9] = 'X'
mmap.Sync(gommap.MS_SYNC)
mmap.Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
c.Assert(fileData, DeepEquals, []byte("012345678XABCDEF"))
}

func (s *S) TestSliceMethods(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

mmap[9] = 'X'
mmap[7:10].Sync(gommap.MS_SYNC)
mmap[7:10].Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
Expand All @@ -76,18 +77,18 @@ func (s *S) TestProtFlagsAndErr(c *C) {
file, err := os.Open(testPath)
c.Assert(err, IsNil)
s.file = file
_, err = gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
_, err = Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
// For this to happen, both the error and the protection flag must work.
c.Assert(err, Equals, syscall.EACCES)
}

func (s *S) TestFlags(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

mmap[9] = 'X'
mmap.Sync(gommap.MS_SYNC)
mmap.Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
Expand All @@ -96,33 +97,33 @@ func (s *S) TestFlags(c *C) {
}

func (s *S) TestAdvise(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

// A bit tricky to blackbox-test these.
err = mmap.Advise(gommap.MADV_RANDOM)
err = mmap.Advise(MADV_RANDOM)
c.Assert(err, IsNil)

err = mmap.Advise(9999)
c.Assert(err, ErrorMatches, "invalid argument")
}

func (s *S) TestProtect(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

err = mmap.Protect(gommap.PROT_READ | gommap.PROT_WRITE)
err = mmap.Protect(PROT_READ | PROT_WRITE)
c.Assert(err, IsNil)

// If this operation doesn't blow up tests, the call above worked.
mmap[9] = 'X'
}

func (s *S) TestLock(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

Expand All @@ -141,7 +142,7 @@ func (s *S) TestLock(c *C) {
}

func (s *S) TestIsResidentUnderOnePage(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

Expand All @@ -159,7 +160,7 @@ func (s *S) TestIsResidentTwoPages(c *C) {
file.Seek(int64(os.Getpagesize()*2-1), 0)
file.Write([]byte{'x'})

mmap, err := gommap.Map(file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

Expand Down
File renamed without changes.
25 changes: 12 additions & 13 deletions gommap_win_test.go → gommap_windows_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package gommap_test
package gommap

import (
"io/ioutil"
Expand All @@ -7,7 +7,6 @@ import (
"syscall"
"testing"

"./gommap"
. "gopkg.in/check.v1"
)

Expand Down Expand Up @@ -38,33 +37,33 @@ func (s *S) TearDownTest(c *C) {
}

func (s *S) TestUnsafeUnmap(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
c.Assert(mmap.UnsafeUnmap(), IsNil)
}

func (s *S) TestReadWrite(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

mmap[9] = 'X'
mmap.Sync(gommap.MS_SYNC)
mmap.Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
c.Assert(fileData, DeepEquals, []byte("012345678XABCDEF"))
}

func (s *S) TestSliceMethods(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

mmap[9] = 'X'
mmap[7:10].Sync(gommap.MS_SYNC)
mmap[7:10].Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
Expand All @@ -77,18 +76,18 @@ func (s *S) TestProtFlagsAndErr(c *C) {
file, err := os.Open(testPath)
c.Assert(err, IsNil)
s.file = file
_, err = gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_SHARED)
_, err = Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_SHARED)
// For this to happen, both the error and the protection flag must work.
c.Assert(err, Equals, syscall.EACCES)
}

func (s *S) TestFlags(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

mmap[9] = 'X'
mmap.Sync(gommap.MS_SYNC)
mmap.Sync(MS_SYNC)

fileData, err := ioutil.ReadFile(s.file.Name())
c.Assert(err, IsNil)
Expand All @@ -97,20 +96,20 @@ func (s *S) TestFlags(c *C) {
}

func (s *S) TestProtect(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ, gommap.MAP_SHARED)
mmap, err := Map(s.file.Fd(), PROT_READ, MAP_SHARED)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()
c.Assert([]byte(mmap), DeepEquals, testData)

err = mmap.Protect(gommap.PROT_READ | gommap.PROT_WRITE)
err = mmap.Protect(PROT_READ | PROT_WRITE)
c.Assert(err, IsNil)

// If this operation doesn't blow up tests, the call above worked.
mmap[9] = 'X'
}

func (s *S) TestLock(c *C) {
mmap, err := gommap.Map(s.file.Fd(), gommap.PROT_READ|gommap.PROT_WRITE, gommap.MAP_PRIVATE)
mmap, err := Map(s.file.Fd(), PROT_READ|PROT_WRITE, MAP_PRIVATE)
c.Assert(err, IsNil)
defer mmap.UnsafeUnmap()

Expand Down

0 comments on commit 2ea32ac

Please sign in to comment.