// -*- Mode: Go; indent-tabs-mode: t -*- /* * Copyright (C) 2014-2015 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program 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 * along with this program. If not, see . * */ package osutil_test import ( "os" "os/exec" . "gopkg.in/check.v1" "github.com/snapcore/snapd/osutil" ) type ExitCodeTestSuite struct{} var _ = Suite(&ExitCodeTestSuite{}) func (ts *ExitCodeTestSuite) TestExitCode(c *C) { cmd := exec.Command("true") err := cmd.Run() c.Assert(err, IsNil) cmd = exec.Command("false") err = cmd.Run() c.Assert(err, NotNil) e, err := osutil.ExitCode(err) c.Assert(err, IsNil) c.Assert(e, Equals, 1) cmd = exec.Command("sh", "-c", "exit 7") err = cmd.Run() e, err = osutil.ExitCode(err) c.Assert(err, IsNil) c.Assert(e, Equals, 7) // ensure that non exec.ExitError values give a error _, err = os.Stat("/random/file/that/is/not/there") c.Assert(err, NotNil) _, err = osutil.ExitCode(err) c.Assert(err, NotNil) }