Finish support for the System.Security.Cryptography.RNGCryptoServiceProvider
[mono.git] / mcs / class / README
index d64070d314ea488ded97fbf1be3ebc7124bcdf6e..853c618cb41abcd06adee9ddce40ec6e00973943 100644 (file)
@@ -3,6 +3,28 @@ The class libraries are grouped together in the assemblies they belong.
 Each directory here represents an assembly, and inside each directory we
 divide the code based on the namespace they implement.
 
+In addition, each assembly directory contains a Test directory that holds the
+NUnit tests for that assembly. 
+
+The nant build file for an assembly creates two versions of the dll for that
+assembly. One version is a "full" dll.  The full dll contains (almost) all 
+of the classes, regardless of how complete the classes are. The name of this
+dll is the normal name you would expect, like "corlib.dll" or "System.dll".
+These full dll's are created in the /mcs/class/lib directory.
+
+The other dll which is built is a "restricted" dll.  The restricted dll
+omits incomplete classes that would prevent the NUnit testrunner from actually
+running the tests. These restricted dll's are created in the Test directory
+of their respective assembly and named with a "_res" suffix.  So, for example,
+the NUnit-testable dll for corlib is /mcs/class/corlib/Test/corlib_res.dll.
+
+The final dll which is built is the one which houses the actual NUnit tests.
+This dll is built from all of the classes in the Test directory and below, and
+is named with a "_test" suffix. So, for example, the NUnit tests for corlib
+are in /mcs/class/corlib/Test/corlib_test.dll. This dll is also linked with 
+the restricted dll found in the same directory.
+
+
 * Missing implementation bits
 
        If you implement a class and you are missing implementation bits,
@@ -32,3 +54,17 @@ divide the code based on the namespace they implement.
        this consistent).  If you are modifying someone else's code, try
        to keep the coding style similar.
 
+       Please use code that looks like this:
+
+       bool Method (int argument_1, int argument_2)
+       {
+               if (argument_1 == argument_2)
+                       throw new Exception (Locale.GetText ("They are equal!");
+
+               if (argument_1 < argument_2) {
+                       if (argument_1 * 3 > 4)
+                               return true;
+                       else
+                               return false;
+               }
+       }