6781: Pass tests regardless of whether an admin group exists on the test host. refs...
authorTom Clegg <tom@curoverse.com>
Wed, 26 Aug 2015 19:01:27 +0000 (15:01 -0400)
committerTom Clegg <tom@curoverse.com>
Wed, 26 Aug 2015 19:01:27 +0000 (15:01 -0400)
services/login-sync/test/test_add_user.rb

index c7d92b7efe5f72f805e55eba651bc70d87bf6a87..7a010c2a64062cb70a6ef916747c47493e3cdcf1 100644 (file)
@@ -12,15 +12,20 @@ class TestAddUser < Minitest::Test
     invoke_sync binstubs: ['new_user']
     spied = File.read(@tmpdir+'/spy')
     assert_match %r{useradd -m -c active -s /bin/bash -G fuse active}, spied
-    assert_match %r{useradd -m -c adminroot -s /bin/bash -G docker,fuse adminroot}, spied
+    # BUG(TC): This assertion succeeds only if docker and fuse groups
+    # exist on the host, but is insensitive to the admin group (groups
+    # are quietly ignored by login-sync if they don't exist on the
+    # current host).
+    assert_match %r{useradd -m -c adminroot -s /bin/bash -G docker(,admin)?,fuse adminroot}, spied
   end
 
   def test_useradd_success
-    # binstub_new_user/useradd will exit non-zero because its args
-    # won't match any line in this empty file:
+    # binstub_new_user/useradd will succeed.
     File.open(@tmpdir+'/succeed', 'w') do |f|
       f.puts 'useradd -m -c active -s /bin/bash -G fuse active'
+      # Accept either form; see note about groups in test_useradd_error.
       f.puts 'useradd -m -c adminroot -s /bin/bash -G docker,fuse adminroot'
+      f.puts 'useradd -m -c adminroot -s /bin/bash -G docker,admin,fuse adminroot'
     end
     $stderr.puts "*** Expect crash in dir_s_mkdir:"
     invoke_sync binstubs: ['new_user']