Exemplo n.º 1
0
 public void InvalidUsers_Syscall_Name()
 {
     string[] badUsers = new string[] { "i'm bad", "so am i", "does-not-exist" };
     foreach (string u in badUsers)
     {
         try {
             Passwd pw = Syscall.getpwnam(u);
             Assert.IsNull(pw, "#TIUSN: invalid users should return null!");
         }
         catch (Exception e) {
             Assert.Fail(string.Format("#TIUCN: invalid exception thrown: " +
                                       "expected ArgumentException, got {0}: {1}",
                                       e.GetType().FullName, e.Message));
         }
     }
 }
Exemplo n.º 2
0
        public void NonReentrantSyscalls()
        {
            ArrayList user_ids = new ArrayList(4);
            IList     users    = UnixUserInfo.GetLocalUsers();

            foreach (UnixUserInfo user in users)
            {
                try
                {
                    Passwd byName = Syscall.getpwnam(user.UserName);
                    Assert.IsNotNull(byName, "#TNRS: access by name");
                    UnixUserInfo n = new UnixUserInfo(byName);
                    Assert.AreEqual(user, n, "#TNRS: construct by name");

                    if (!user_ids.Contains(user.UserId))
                    {
                        user_ids.Add(user.UserId);
                    }
                }
                catch (Exception e)
                {
                    Assert.Fail(
                        string.Format("#TNRS: Exception constructing UnixUserInfo (string): {0}",
                                      e.ToString()));
                }
            }

            foreach (long uid in user_ids)
            {
                try
                {
                    Passwd byId = Syscall.getpwuid(Convert.ToUInt32(uid));
                    Assert.IsNotNull(byId, "#TNRS: access by uid");

                    UnixUserInfo u = new UnixUserInfo(byId);
                    Assert.IsTrue(users.Contains(u), "TNRS: construct by uid");
                }
                catch (Exception e)
                {
                    Assert.Fail(
                        string.Format("#TNRS: Exception constructing UnixUserInfo (uint): {0}",
                                      e.ToString()));
                }
            }
        }
Exemplo n.º 3
0
        public void Equality()
        {
            Passwd orig = new Passwd();
            Passwd mod  = new Passwd();

            mod.pw_name   = orig.pw_name = "some name";
            mod.pw_passwd = orig.pw_passwd = "some passwd";
            mod.pw_uid    = orig.pw_uid = 500;
            mod.pw_gid    = orig.pw_gid = 500;
            mod.pw_gecos  = orig.pw_gecos = "some gecos";
            mod.pw_dir    = orig.pw_dir = "/some/dir";
            mod.pw_shell  = orig.pw_shell = "/some/shell";

            Assert.AreEqual(orig, mod, "#TE: copies should be equal");

            mod.pw_name = "another name";
            Assert.IsFalse(orig.Equals(mod), "#TE: changes should be reflected");
        }
Exemplo n.º 4
0
		public void Equality ()
		{
			Passwd orig = new Passwd ();
			Passwd mod  = new Passwd ();
			mod.pw_name   = orig.pw_name   = "some name";
			mod.pw_passwd = orig.pw_passwd = "some passwd";
			mod.pw_uid    = orig.pw_uid    = 500;
			mod.pw_gid    = orig.pw_gid    = 500;
			mod.pw_gecos  = orig.pw_gecos  = "some gecos";
			mod.pw_dir    = orig.pw_dir    = "/some/dir";
			mod.pw_shell  = orig.pw_shell  = "/some/shell";

			Assert.AreEqual (orig, mod, "#TE: copies should be equal");

			mod.pw_name = "another name";
			Assert.IsFalse (orig.Equals (mod), "#TE: changes should be reflected");
		}