Esempio n. 1
0
        [Category("AndroidNotWorking")]          // API 21 conditionally has setgrent in the NDK headers, but bionic doesn't export it
        public void NonReentrantSyscalls()
        {
            var seen = new Dictionary <string, object> ();

            foreach (UnixGroupInfo group in UnixGroupInfo.GetLocalGroups())
            {
                if (seen.ContainsKey(group.GroupName))
                {
                    continue;
                }
                seen.Add(group.GroupName, null);
                try {
                    Group byName = Syscall.getgrnam(group.GroupName);
                    Group byId   = Syscall.getgrgid((uint)group.GroupId);

                    Assert.IsNotNull(byName, "#TNRS: access by name");
                    Assert.IsNotNull(byId, "#TNRS: access by gid");

                    UnixGroupInfo n = new UnixGroupInfo(byName);
                    UnixGroupInfo u = new UnixGroupInfo(byId);

                    Assert.AreEqual(group, n, "#TNRS: construct by name");
                    Assert.AreEqual(group, u, "#TNRS: construct by gid");
                    Assert.AreEqual(n, u, "#TNRS: name == gid?");
                }
                catch (Exception e) {
                    Assert.Fail(
                        string.Format("#TRC: Exception constructing UnixGroupInfo: {0}",
                                      e.ToString()));
                }
            }
        }
Esempio n. 2
0
        public void NonReentrantSyscalls()
        {
            foreach (UnixGroupInfo group in UnixGroupInfo.GetLocalGroups())
            {
                try {
                    Group byName = Syscall.getgrnam(group.GroupName);
                    Group byId   = Syscall.getgrgid((uint)group.GroupId);

                    Assert.IsNotNull(byName, "#TNRS: access by name");
                    Assert.IsNotNull(byId, "#TNRS: access by gid");

                    UnixGroupInfo n = new UnixGroupInfo(byName);
                    UnixGroupInfo u = new UnixGroupInfo(byId);

                    Assert.AreEqual(group, n, "#TNRS: construct by name");
                    Assert.AreEqual(group, u, "#TNRS: construct by gid");
                    Assert.AreEqual(n, u, "#TNRS: name == gid?");
                }
                catch (Exception e) {
                    Assert.Fail(
                        string.Format("#TRC: Exception constructing UnixGroupInfo: {0}",
                                      e.ToString()));
                }
            }
        }
Esempio n. 3
0
        public void Equality()
        {
            Group orig = new Group();
            Group mod  = new Group();

            mod.gr_name   = orig.gr_name = "some name";
            mod.gr_passwd = orig.gr_passwd = "some passwd";
            mod.gr_gid    = orig.gr_gid = 500;
            mod.gr_mem    = orig.gr_mem = new string[] { "foo", "bar" };

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

            mod.gr_name = "another name";
            Assert.IsFalse(orig.Equals(mod), "#TE: changes should be reflected");
        }
Esempio n. 4
0
 public void InvalidGroups_Syscall_Name()
 {
     string[] badGroups = new string[] { "i'm bad", "so am i", "does-not-exist" };
     foreach (string u in badGroups)
     {
         try {
             Group pw = Syscall.getgrnam(u);
             Assert.IsNull(pw, "#TIUSN: invalid groups should return null!");
         }
         catch (Exception e) {
             Assert.Fail(string.Format("#TIUCN: invalid exception thrown: " +
                                       "expected null return, got {0}: {1}",
                                       e.GetType().FullName, e.Message));
         }
     }
 }
		public void Equality ()
		{
			Group orig = new Group ();
			Group mod  = new Group ();
			mod.gr_name   = orig.gr_name   = "some name";
			mod.gr_passwd = orig.gr_passwd = "some passwd";
			mod.gr_gid    = orig.gr_gid    = 500;
			mod.gr_mem    = orig.gr_mem    = new string[]{"foo", "bar"};

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

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