1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-04-27 13:48:56 +08:00
hybridgroup.gobot/sysfs/digital_pin_test.go
2014-11-07 16:21:39 -08:00

49 lines
1.0 KiB
Go

package sysfs
import (
"testing"
"github.com/hybridgroup/gobot"
)
func TestDigitalPin(t *testing.T) {
fs := NewMockFilesystem([]string{
"/sys/class/gpio/export",
"/sys/class/gpio/unexport",
"/sys/class/gpio/gpio10/value",
"/sys/class/gpio/gpio10/direction",
})
SetFilesystem(fs)
pin := NewDigitalPin(10, "custom").(*digitalPin)
gobot.Assert(t, pin.pin, "10")
gobot.Assert(t, pin.label, "custom")
pin = NewDigitalPin(10).(*digitalPin)
gobot.Assert(t, pin.label, "gpio10")
pin.Unexport()
gobot.Assert(t, fs.Files["/sys/class/gpio/unexport"].Contents, "10")
pin.Export()
gobot.Assert(t, fs.Files["/sys/class/gpio/unexport"].Contents, "10")
pin.Write(1)
gobot.Assert(t, fs.Files["/sys/class/gpio/gpio10/value"].Contents, "1")
pin.Direction(IN)
gobot.Assert(t, fs.Files["/sys/class/gpio/gpio10/direction"].Contents, "in")
data, _ := pin.Read()
gobot.Assert(t, 1, data)
pin2 := NewDigitalPin(30, "custom")
err := pin2.Write(1)
gobot.Refute(t, err, nil)
data, err = pin2.Read()
gobot.Refute(t, err, nil)
gobot.Assert(t, data, 0)
}