gobot.io/x/gobot@v1.16.0/platforms/raspi/pwm_pin_test.go (about) 1 package raspi 2 3 import ( 4 "errors" 5 "testing" 6 7 "gobot.io/x/gobot/gobottest" 8 "gobot.io/x/gobot/sysfs" 9 ) 10 11 var _ sysfs.PWMPinner = (*PWMPin)(nil) 12 13 func TestPwmPin(t *testing.T) { 14 pin := NewPWMPin("1") 15 gobottest.Assert(t, pin.Export(), nil) 16 gobottest.Assert(t, pin.Enable(true), nil) 17 val, _ := pin.Polarity() 18 gobottest.Assert(t, val, "normal") 19 gobottest.Assert(t, pin.InvertPolarity(true), nil) 20 val, _ = pin.Polarity() 21 gobottest.Assert(t, val, "normal") 22 23 period, err := pin.Period() 24 gobottest.Assert(t, err, errors.New("Raspi PWM pin period not set")) 25 gobottest.Assert(t, pin.SetDutyCycle(10000), errors.New("Raspi PWM pin period not set")) 26 27 gobottest.Assert(t, pin.SetPeriod(20000000), nil) 28 period, _ = pin.Period() 29 gobottest.Assert(t, period, uint32(20000000)) 30 gobottest.Assert(t, pin.SetPeriod(10000000), errors.New("Cannot set the period of individual PWM pins on Raspi")) 31 32 dc, _ := pin.DutyCycle() 33 gobottest.Assert(t, dc, uint32(0)) 34 35 // call currently fails in test 36 gobottest.Refute(t, pin.SetDutyCycle(10000), nil) 37 dc, _ = pin.DutyCycle() 38 gobottest.Assert(t, dc, uint32(10000)) 39 40 gobottest.Assert(t, pin.SetDutyCycle(999999999), errors.New("Duty cycle exceeds period.")) 41 dc, _ = pin.DutyCycle() 42 gobottest.Assert(t, dc, uint32(10000)) 43 44 // call currently fails in test 45 gobottest.Refute(t, pin.Unexport(), nil) 46 }