mirror of https://bitbucket.org/ausocean/av.git
device: add tests for IsRunning
To check that the IsRunning method is working, some tests are needed. These tests shall be skipped when an AVdevice is not connected, such as when testing within Circle-CI.
This commit is contained in:
parent
9a0e52a8f3
commit
f1d1fe2cad
|
@ -4,9 +4,10 @@ NAME
|
||||||
|
|
||||||
AUTHOR
|
AUTHOR
|
||||||
Trek Hopton <trek@ausocean.org>
|
Trek Hopton <trek@ausocean.org>
|
||||||
|
Scott Barnard <scott@ausocean.org>
|
||||||
|
|
||||||
LICENSE
|
LICENSE
|
||||||
This file is Copyright (C) 2019 the Australian Ocean Lab (AusOcean)
|
This file is Copyright (C) 2019-2020 the Australian Ocean Lab (AusOcean)
|
||||||
|
|
||||||
It is free software: you can redistribute it and/or modify them
|
It is free software: you can redistribute it and/or modify them
|
||||||
under the terms of the GNU General Public License as published by the
|
under the terms of the GNU General Public License as published by the
|
||||||
|
@ -25,6 +26,7 @@ LICENSE
|
||||||
package alsa
|
package alsa
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -106,3 +108,38 @@ func TestNearestPowerOfTwo(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsRunning(t *testing.T) {
|
||||||
|
l := logger.New(logger.Debug, &bytes.Buffer{}, true) // Discard logs.
|
||||||
|
d := New(l)
|
||||||
|
|
||||||
|
var err error
|
||||||
|
err = d.Set(config.Config{
|
||||||
|
SampleRate: 1000,
|
||||||
|
Channels: 1,
|
||||||
|
BitDepth: 16,
|
||||||
|
RecPeriod: 1,
|
||||||
|
InputCodec: codecutil.ADPCM,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not set device: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not start device %w", err)
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if !d.IsRunning() {
|
||||||
|
t.Error("device isn't running, when it should be")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Stop()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if d.IsRunning() {
|
||||||
|
t.Error("device is running, when it should not be")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
DESCRIPTION
|
||||||
|
file_test.go tests the file AVDevice.
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
Scott Barnard <scott@ausocean.org>
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
Copyright (C) 2020 the Australian Ocean Lab (AusOcean)
|
||||||
|
|
||||||
|
It is free software: you can redistribute it and/or modify them
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
in gpl.txt. If not, see http://www.gnu.org/licenses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package file
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"bitbucket.org/ausocean/av/revid/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIsRunning(t *testing.T) {
|
||||||
|
d := New()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
d.Set(config.Config{
|
||||||
|
InputPath: "../../../test/test-data/av/input/motion-detection/mjpeg/school.mjpeg",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not set device: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not start device %w", err)
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if !d.IsRunning() {
|
||||||
|
t.Error("device isn't running, when it should be")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Stop()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if d.IsRunning() {
|
||||||
|
t.Error("device is running, when it should not be")
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
DESCRIPTION
|
||||||
|
geovision_test.go tests the geovision AVDevice.
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
Scott Barnard <scott@ausocean.org>
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
Copyright (C) 2020 the Australian Ocean Lab (AusOcean)
|
||||||
|
|
||||||
|
It is free software: you can redistribute it and/or modify them
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
in gpl.txt. If not, see http://www.gnu.org/licenses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package geovision
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"bitbucket.org/ausocean/av/codec/codecutil"
|
||||||
|
"bitbucket.org/ausocean/av/revid/config"
|
||||||
|
"bitbucket.org/ausocean/utils/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIsRunning(t *testing.T) {
|
||||||
|
l := logger.New(logger.Debug, &bytes.Buffer{}, true) // Discard logs.
|
||||||
|
d := New(l)
|
||||||
|
|
||||||
|
var err error
|
||||||
|
d.Set(config.Config{
|
||||||
|
Logger: l,
|
||||||
|
InputCodec: codecutil.H264,
|
||||||
|
CameraIP: "192.168.4.20",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not set device: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not start device %w", err)
|
||||||
|
}
|
||||||
|
time.Sleep(50 * time.Millisecond)
|
||||||
|
if !d.IsRunning() {
|
||||||
|
t.Error("device isn't running, when it should be")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Stop()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(50 * time.Millisecond)
|
||||||
|
if d.IsRunning() {
|
||||||
|
t.Error("device is running, when it should not be")
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
DESCRIPTION
|
||||||
|
raspivid_test.go tests the raspivid AVDevice.
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
Scott Barnard <scott@ausocean.org>
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
Copyright (C) 2020 the Australian Ocean Lab (AusOcean)
|
||||||
|
|
||||||
|
It is free software: you can redistribute it and/or modify them
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
in gpl.txt. If not, see http://www.gnu.org/licenses.
|
||||||
|
*/
|
||||||
|
package raspivid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"bitbucket.org/ausocean/av/codec/codecutil"
|
||||||
|
"bitbucket.org/ausocean/av/revid/config"
|
||||||
|
"bitbucket.org/ausocean/utils/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIsRunning(t *testing.T) {
|
||||||
|
l := logger.New(logger.Debug, &bytes.Buffer{}, true) // Discard logs.
|
||||||
|
d := New(l)
|
||||||
|
|
||||||
|
var err error
|
||||||
|
d.Set(config.Config{
|
||||||
|
Logger: l,
|
||||||
|
InputCodec: codecutil.H264,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not set device: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not start device %w", err)
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if !d.IsRunning() {
|
||||||
|
t.Error("device isn't running, when it should be")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Stop()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if d.IsRunning() {
|
||||||
|
t.Error("device is running, when it should not be")
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
DESCRIPTION
|
||||||
|
webcam_test.go tests the webcam AVDevice.
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
Scott Barnard <scott@ausocean.org>
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
Copyright (C) 2020 the Australian Ocean Lab (AusOcean)
|
||||||
|
|
||||||
|
It is free software: you can redistribute it and/or modify them
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
in gpl.txt. If not, see http://www.gnu.org/licenses.
|
||||||
|
*/
|
||||||
|
package webcam
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"bitbucket.org/ausocean/av/codec/codecutil"
|
||||||
|
"bitbucket.org/ausocean/av/revid/config"
|
||||||
|
"bitbucket.org/ausocean/utils/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIsRunning(t *testing.T) {
|
||||||
|
l := logger.New(logger.Debug, &bytes.Buffer{}, true) // Discard logs.
|
||||||
|
d := New(l)
|
||||||
|
|
||||||
|
var err error
|
||||||
|
d.Set(config.Config{
|
||||||
|
Logger: l,
|
||||||
|
InputCodec: codecutil.H264,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not set device: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("could not start device %w", err)
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if !d.IsRunning() {
|
||||||
|
t.Error("device isn't running, when it should be")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = d.Stop()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(250 * time.Millisecond)
|
||||||
|
if d.IsRunning() {
|
||||||
|
t.Error("device is running, when it should not be")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue