예제 #1
0
        public static void Remove(State state, string description, string name, ref RegState source, ref bool pass, RegState?final = null)
        {
            state.AddReport(description);
            source.Zap(Const.TestExt);
            var result = InvokeFileMetaAssoc(state, "-r");

            if (result != 0)
            {
                state.AddReport(String.Format("FileMetaAssoc -r failed for {0}", name));
                pass = false;
            }

            var outcome = new RegState();

            outcome.Read(Const.TestExt);

            if (final == null)
            {
                // Usually, the expected final state is an empty registry
                if (outcome != new RegState())
                {
                    state.AddReport(String.Format("Remove did not completely clean up for {0}", name));
                    pass = false;
                }
            }
            else
            {
                // If the final state was specified, verify that we got it
                if (outcome != final)
                {
                    state.AddReport(String.Format("Remove did not produce the expected final registry state for {0}", name));
                    pass = false;
                }
            }

            // Clean up after ourselves
            RegState.Wipe(Const.TestExt);
        }
예제 #2
0
        private static void RoundTrip(State state, string name, ref RegState source, ref bool pass)
        {
            source.Zap(Const.TestExt);
            var read = new RegState();

            read.Read(Const.TestExt);
            if (read != source)
            {
                state.AddReport(String.Format("Round-trip failed for {0}", name));
                pass = false;
            }

            RegState.Wipe(Const.TestExt);

            var clear = new RegState();

            clear.Read(Const.TestExt);
            if (clear != new RegState())
            {
                state.AddReport(String.Format("Wipe failed for {0}", name));
                pass = false;
            }
        }