oeqa: Remove linux user utilized for rpm test.

Submitted by Edwin Plauchu on Sept. 8, 2016, 1:26 a.m. | Patch ID: 131245

Details

Message ID 20160908012645.25324-1-edwin.plauchu.camacho@linux.intel.com
State New
Headers show

Commit Message

Edwin Plauchu Sept. 8, 2016, 1:26 a.m.
From: Edwin Plauchu <edwin.plauchu.camacho@intel.com>

When trying to re-test smart rpm tests. A fail arises
due to a linux user previously created upon the image.
W've added a few lines to delete such user and his home dir
when finishing test.

[YOCTO #9204]

Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
---
 meta/lib/oeqa/runtime/rpm.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/lib/oeqa/runtime/rpm.py b/meta/lib/oeqa/runtime/rpm.py
index 4d03ecb..285f39b 100644
--- a/meta/lib/oeqa/runtime/rpm.py
+++ b/meta/lib/oeqa/runtime/rpm.py
@@ -51,12 +51,15 @@  class RpmInstallRemoveTest(oeRuntimeTest):
     @testcase(1096)
     @skipUnlessPassed('test_ssh')
     def test_rpm_query_nonroot(self):
-        (status, output) = self.target.run('useradd test1')
+        test_user = 'test1'
+        (status, output) = self.target.run("useradd %s" % test_user)
         self.assertTrue(status == 0, msg="Failed to create new user: " + output)
-        (status, output) = self.target.run('su -c id test1')
+        (status, output) = self.target.run("su -c id %s" % test_user)
         self.assertTrue('(test1)' in output, msg="Failed to execute as new user")
-        (status, output) = self.target.run('su -c "rpm -qa" test1 ')
+        (status, output) = self.target.run("su -c \"rpm -qa\" %s " % test_user)
         self.assertEqual(status, 0, msg="status: %s. Cannot run rpm -qa: %s" % (status, output))
+        (status, output) = self.target.run("userdel -r %s" % test_user)
+        self.assertTrue(status == 0, msg="Failed to erase user: %s" % output)
 
     @testcase(195)
     @skipUnlessPassed('test_rpm_install')

Comments

Ross Burton Sept. 8, 2016, 10:38 a.m.
On 8 September 2016 at 02:26, Edwin Plauchu <
edwin.plauchu.camacho@linux.intel.com> wrote:

>      def test_rpm_query_nonroot(self):
> -        (status, output) = self.target.run('useradd test1')
> +        test_user = 'test1'
> +        (status, output) = self.target.run("useradd %s" % test_user)
>          self.assertTrue(status == 0, msg="Failed to create new user: " +
> output)
> -        (status, output) = self.target.run('su -c id test1')
> +        (status, output) = self.target.run("su -c id %s" % test_user)
>          self.assertTrue('(test1)' in output, msg="Failed to execute as
> new user")
> -        (status, output) = self.target.run('su -c "rpm -qa" test1 ')
> +        (status, output) = self.target.run("su -c \"rpm -qa\" %s " %
> test_user)
>          self.assertEqual(status, 0, msg="status: %s. Cannot run rpm -qa:
> %s" % (status, output))
> +        (status, output) = self.target.run("userdel -r %s" % test_user)
> +        self.assertTrue(status == 0, msg="Failed to erase user: %s" %
> output)
>

The user removal should be in a try/finally block around the test so that
it always executes even if the test fails.

Ross
Ross Burton Sept. 8, 2016, 11:01 a.m.
On 8 September 2016 at 02:26, Edwin Plauchu <
edwin.plauchu.camacho@linux.intel.com> wrote:

> When trying to re-test smart rpm tests. A fail arises
> due to a linux user previously created upon the image.
> W've added a few lines to delete such user and his home dir
> when finishing test.
>

Also as part of a belt-and-brances approach the test should not create a
new user if it already exists.

Ross