<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[Tests][945] trunk: Stop dropping the entire database when running the test suite as it is no longer</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg > ul, #logmsg > ol { margin-left: 0; margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://unit-tests.trac.wordpress.org/changeset/945">945</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2012-08-01 22:23:41 +0000 (Wed, 01 Aug 2012)</dd>
</dl>

<h3>Log Message</h3>
<pre>Stop dropping the entire database when running the test suite as it is no longer
necessary to do such heavy-handed cleaning.

When the test suite runs the install script, it will drop all of its own tables.
So, single site plus multisite global tables for whichever prefix is configured.

Change the sample prefix to wptests_ so someone does not accidentally clear out
a wp_ install, and can run them side-by-side.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkbininstallphp">trunk/bin/install.php</a></li>
<li><a href="#trunkwptestsconfigsamplephp">trunk/wp-tests-config-sample.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkbininstallphp"></a>
<div class="modfile"><h4>Modified: trunk/bin/install.php (944 => 945)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bin/install.php        2012-08-01 17:37:00 UTC (rev 944)
+++ trunk/bin/install.php        2012-08-01 22:23:41 UTC (rev 945)
</span><span class="lines">@@ -35,12 +35,23 @@
</span><span class="cx"> if ( $installed &amp;&amp; file_exists( WP_TESTS_VERSION_FILE ) &amp;&amp; file_get_contents( WP_TESTS_VERSION_FILE ) == $hash )
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-$wpdb-&gt;query( 'SET storage_engine = INNODB;' );
-$wpdb-&gt;query( 'DROP DATABASE IF EXISTS '.DB_NAME.&quot;;&quot; );
-$wpdb-&gt;query( 'CREATE DATABASE '.DB_NAME.&quot;;&quot; );
</del><ins>+$wpdb-&gt;query( 'SET storage_engine = INNODB' );
</ins><span class="cx"> $wpdb-&gt;select( DB_NAME, $wpdb-&gt;dbh );
</span><span class="cx"> 
</span><span class="cx"> echo &quot;Installing…&quot; . PHP_EOL;
</span><ins>+
+foreach ( $wpdb-&gt;tables() as $table =&gt; $prefixed_table ) {
+        $wpdb-&gt;query( &quot;DROP TABLE IF EXISTS $prefixed_table&quot; );
+}
+
+foreach ( $wpdb-&gt;tables( 'ms_global' ) as $table =&gt; $prefixed_table ) {
+        $wpdb-&gt;query( &quot;DROP TABLE IF EXISTS $prefixed_table&quot; );
+
+        // We need to create references to ms global tables.
+        if ( $multisite )
+                $wpdb-&gt;$table = $prefixed_table;
+}
+
</ins><span class="cx"> wp_install( WP_TESTS_TITLE, 'admin', WP_TESTS_EMAIL, true, null, 'password' );
</span><span class="cx"> 
</span><span class="cx"> if ( $multisite ) {
</span><span class="lines">@@ -48,10 +59,6 @@
</span><span class="cx"> 
</span><span class="cx">         define( 'WP_INSTALLING_NETWORK', true );
</span><span class="cx"> 
</span><del>-        // We need to create references to ms global tables.
-        foreach ( $wpdb-&gt;tables( 'ms_global' ) as $table =&gt; $prefixed_table )
-                $wpdb-&gt;$table = $prefixed_table;
-
</del><span class="cx">         $title = WP_TESTS_TITLE . ' Network';
</span><span class="cx">         $subdomain_install = false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwptestsconfigsamplephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-tests-config-sample.php (944 => 945)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-tests-config-sample.php        2012-08-01 17:37:00 UTC (rev 944)
+++ trunk/wp-tests-config-sample.php        2012-08-01 22:23:41 UTC (rev 945)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx"> // wordpress/wp-config.php will be ignored.
</span><span class="cx"> 
</span><span class="cx"> // WARNING WARNING WARNING!
</span><del>-// wp-test will DROP ALL TABLES in the database named below.
</del><ins>+// These tests will DROP ALL TABLES in the database with the prefix named below.
</ins><span class="cx"> // DO NOT use a production database or one that is shared with something else.
</span><span class="cx"> 
</span><span class="cx"> define( 'DB_NAME', 'putyourdbnamehere' );    // The name of the database
</span><span class="lines">@@ -35,4 +35,4 @@
</span><span class="cx"> define( 'WP_PHP_BINARY', 'php' );
</span><span class="cx"> 
</span><span class="cx"> define ( 'WPLANG', '' );
</span><del>-$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!
</del><ins>+$table_prefix  = 'wptests_';   // Only numbers, letters, and underscores please!
</ins></span></pre>
</div>
</div>

</body>
</html>