commit much of the virtualization support, stubbed out
[moon.git] / class / System.Windows / scripts / README
blobe0dc3e1c48ab5caa14b156ee72e845ee73495e7f
1 make check-static:
2 - Does a static check in all classes derived from DependencyObject (fails if these checks fail):
3         * Must override GetKind.
4         * Must have a public empty constructor.
5         * Must have an internal constructor that takes 1 IntPtr argument.
6 - It will also list the size of all constructors that doesn't have a normal size, look out for (warnings, can be ignored):
7         * Constructors smaller than the normal size.
8         * Constructors with size similar to the normal size, but not exactly the same.
9   These constructors likely do not implement the required constructor pattern:
10         public ctor () : base (NativeMethods.class_name_new ())
11         internal ctor (IntPtr raw) : base (raw)
12   Normal size: 23 bytes for empty constructors, and 8 bytes for the IntPtr constructor.
14 make check-dynamic:
15 - Creates a test program that for each class derived from DependencyObject:
16         * Creates it
17         * For each property, stores a value (if writable), gets the (stored if writable) value (if readable), and compares them (if both readable and writable).
18         * For nullable properties, tries to store both a null value as well as a nullable<type> value.
19 - Currently there's some output that can be ignored:
20         * The downloader has not been initialized, so there'll be a few of these:
21                 ** (tester.exe:2038): WARNING **: downloader_set_function has never been called.
22         * The instantiated classes does not always make sense in unmanaged land, so we're getting these as well:
23                 ** (tester.exe:2038): WARNING **: UIElement:getbounds has been called. The derived class <type> should have overridden it.