Merge branch 'wip-MDL-25290-m24-compact' of git://github.com/samhemelryk/moodle
[moodle.git] / lib / phpunit / classes / util.php
index a4b3d9f..0f95b2f 100644 (file)
@@ -553,6 +553,9 @@ class phpunit_util {
     public static function reset_all_data($logchanges = false) {
         global $DB, $CFG, $USER, $SITE, $COURSE, $PAGE, $OUTPUT, $SESSION, $GROUPLIB_CACHE;
 
+        // Release memory and indirectly call destroy() methods to release resource handles, etc.
+        gc_collect_cycles();
+
         // Show any unhandled debugging messages, the runbare() could already reset it.
         self::display_debugging_messages();
         self::reset_debugging();
@@ -632,6 +635,14 @@ class phpunit_util {
         $GROUPLIB_CACHE = null;
         //TODO MDL-25290: add more resets here and probably refactor them to new core function
 
+        // Reset course and module caches.
+        if (class_exists('format_base')) {
+            // If file containing class is not loaded, there is no cache there anyway.
+            format_base::reset_course_cache(0);
+        }
+        $reset = 'reset';
+        get_fast_modinfo($reset);
+
         // purge dataroot directory
         self::reset_dataroot();