aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/benchmark.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2008-05-29 12:25:56 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2008-05-29 12:25:56 +0000
commit2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04 (patch)
tree3b7ea329bf35eab5ddab9b0b5eb790e45e283a5c /phpBB/develop/benchmark.php
parent91b4fe1868ca2c4d81111943f781e3cfd0262ef2 (diff)
downloadforums-2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04.tar
forums-2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04.tar.gz
forums-2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04.tar.bz2
forums-2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04.tar.xz
forums-2f4a618900e2c3b6ea14c68cbeb5897cd2ac1a04.zip
ok... i hope i haven't messed too much with the code and everything is still working.
Changes: - Ascraeus now uses constants for the phpbb root path and the php extension. This ensures more security for external applications and modifications (no more overwriting of root path and extension possible through insecure mods and register globals enabled) as well as no more globalizing needed. - A second change implemented here is an additional short-hand-notation for append_sid(). It is allowed to omit the root path and extension now (for example calling append_sid('memberlist')) - in this case the root path and extension get added automatically. The hook is called after these are added. git-svn-id: file:///svn/phpbb/trunk@8572 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/develop/benchmark.php')
-rw-r--r--phpBB/develop/benchmark.php462
1 files changed, 0 insertions, 462 deletions
diff --git a/phpBB/develop/benchmark.php b/phpBB/develop/benchmark.php
deleted file mode 100644
index 5bbe6f53be..0000000000
--- a/phpBB/develop/benchmark.php
+++ /dev/null
@@ -1,462 +0,0 @@
-<?php
-
-//
-// Security message:
-//
-// This script is potentially dangerous.
-// Remove or comment the next line (die(".... ) to enable this script.
-// Do NOT FORGET to either remove this script or disable it after you have used it.
-//
-die("Please read the first lines of this script for instructions on how to enable it");
-
-//
-// Do not change anything below this line.
-//
-
-
-$phpbb_root_path = "../";
-include($phpbb_root_path . 'extension.inc');
-include($phpbb_root_path . 'common.'.$phpEx);
-include($phpbb_root_path . 'includes/post.'.$phpEx);
-include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
-
-srand ((double) microtime() * 1000000);
-set_time_limit(240*60);
-
-// Here's the text we stick in posts..
-$bigass_text = '
-phpBB BBCode test suite v0.0.2
-auto-linkification:
-http://something.com
-www.something.com
-nate@phpbb.com
-http://something.com/foo.php?this=that&theother=some%20encoded%20string is a link.
-[code]
-Simple code block with some <html> <tags>.
-[/code]
-[b]bolded[/b], [i]italic[/i]
-[email]james@totalgeek.org[/email]
-[url=http://www.totalgeek.org]totalgeek.org[/url]
-[url]www.totalgeek.org[/url]
-[list]
-[*] This is the first bulleted item.
-[*] This is the second bulleted item.
-[/list]
-[list=A]
-[*] This is the first bulleted item.
-[*] This is the second bulleted item.
-[/list]
-[quote]
-And a quote!
-[/quote]
-';
-
-
-// The script expects the ID's in the tables to sequential (1,2,3,4,5),
-// so no holes please (1,4,5,8)...
-$nr_of_users = nrof(USERS_TABLE);
-$nr_of_cats = nrof(CATEGORIES_TABLE);
-$nr_of_forums = nrof(FORUMS_TABLE);
-$nr_of_posts = nrof(POSTS_TABLE);
-
-$u = $users;
-
-$starttime = microtime();
-
-$usercreationcount = 0;
-while($users > 0)
-{
-
- $name = "testuser_" . substr(md5(uniqid(rand())), 0, 10);
- if (make_user($name))
- {
- $usercreationcount++;
- $users--;
- }
- if (($usercreationcount % 500) == 0)
- {
- echo "status: $usercreationcount <br>\n";
- flush();
- }
-
-}
-
-if ($posts > 0)
-{
- filldb($posts);
-}
-
-$endtime = microtime();
-
-if ($submit="" || !isset($submit))
-{
- ?>
-Hello, welcome to this little phpBB Benchmarking script :)<p>
-
-At the moment there are:<br>
-
-<table>
-<tr><td align="right"><?php echo $nr_of_users?></td><td>Users</td></tr>
-<tr><td align="right"><?php echo $nr_of_forums?></td><td>Forums</td></tr>
-<tr><td align="right"><?php echo $nr_of_posts?></td><td>Posts</td></tr>
-</table>
-<p>
-What do you want to create?<p>
-
-<form method="get" action="<?php echo $PHP_SELF?>">
-<input type="text" name="users" size="3"> Users<br>
-<input type="text" name="posts" size="3"> Posts/topics (optional: post size in <input type="text" name="size" size="3"> bytes)<br>
-<input type="submit" name="submit">
-</form>
-
- <?php
-}
-else
-{
-
- list ($starttime_msec,$starttime_sec) = explode(" ",$starttime);
- list ($endtime_msec,$endtime_sec) = explode(" ",$endtime);
- $timetaken_sec = ($endtime_sec+$endtime_msec) - ($starttime_sec+$starttime_msec);
- print "<B>TIME TAKEN : ".$timetaken_sec."s</B><BR>\n";
-
- print "<p>\n<a href=\"$PHP_SELF\">Back to the overview page</a>\n";
-}
-
-
-function filldb($newposts)
-{
- global $nr_of_forums;
- global $nr_of_users;
-
- $forum_topic_counts = array();
-
- for ($i = 1; $i <= $nr_of_forums; $i++)
- {
- $forum_topic_counts[$i] = get_topic_count($i);
- }
-
- for($i = 0; $i < $newposts; $i++)
- {
- $userid = rand(2, $nr_of_users - 1);
- $forum = rand(1,$nr_of_forums);
-
- if ((rand(0,30) < 1) || ($forum_topic_count[$forum] == 0))
- {
- // create a new topic 1 in 30 times (or when there are none);
- $topic = make_topic($userid, "Testing topic $i", $forum);
- $forum_topic_count[$forum]++;
- }
- else
- {
- // Otherwise create a reply(posting) somewhere.
- $topic = get_smallest_topic($forum);
- create_posting($userid, $topic, $forum, "reply");
- }
-
- if (($i % 1000) == 0)
- {
- echo "status: $i <br>";
- flush();
- }
-
- }
-}
-
-
-function get_smallest_topic($forum_id)
-{
- global $db;
-
- $sql = "SELECT topic_id
- FROM " . TOPICS_TABLE . "
- WHERE (forum_id = $forum_id)
- ORDER BY topic_replies ASC LIMIT 1";
- if($result = $db->sql_query($sql))
- {
- $row = $db->sql_fetchrow($result);
- $topic_id = $row['topic_id'];
-
- unset($result);
- unset($row);
- return $topic_id;
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't get smallest topic.", "", __LINE__, __FILE__, $sql);
- }
-
-}
-
-
-function get_topic_count($forum_id)
-{
- global $db;
-
- $sql = "SELECT forum_topics
- FROM " . FORUMS_TABLE . "
- WHERE (forum_id = $forum_id)";
- if($result = $db->sql_query($sql))
- {
- $row = $db->sql_fetchrow($result);
- $topic_count = $row['forum_topics'];
-
- unset($result);
- unset($row);
- return $topic_count;
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't get topic count.", "", __LINE__, __FILE__, $sql);
- }
-
-}
-
-
-function make_topic($user_id, $subject, $forum_id)
-{
- global $db;
- $topic_type = POST_NORMAL;
- $topic_vote = 0;
- $current_time = time();
-
- $sql = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote)
- VALUES ('$subject', $user_id, $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)";
-
- if( $result = $db->sql_query($sql, BEGIN_TRANSACTION) )
- {
- $new_topic_id = $db->sql_nextid();
- }
- else
- {
- message_die(GENERAL_ERROR, "Error inserting data into topics table", "", __LINE__, __FILE__, $sql);
- }
-
- create_posting($user_id, $new_topic_id, $forum_id);
-
- return $new_topic_id;
-}
-
-
-
-function create_posting($userid, $topic_id, $forum, $mode='newtopic')
-{
- $message = generatepost();
-
- return make_post($topic_id, $forum, $userid, "", $message, $mode);
-
-}
-
-
-
-function make_post($new_topic_id, $forum_id, $user_id, $post_username, $text, $mode='newtopic')
-{
- global $db;
- $current_time = time();
- $user_ip = "ac100202";
- $bbcode_on = 1;
- $html_on = 1;
- $smilies_on = 1;
- $attach_sig = 1;
- $bbcode_uid = make_bbcode_uid();
-
- $post_subject = 'random subject';
-
- $post_message = prepare_message($text, $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
-
- $sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, attach_id, icon_id, post_username, post_time, poster_ip, post_approved, bbcode_uid, enable_bbcode, enable_html, enable_smilies, enable_sig, post_subject, post_text)
- VALUES ($new_topic_id, $forum_id, $user_id, 0, 0, '$post_username', $current_time, '$user_ip', 1, '$bbcode_uid', $bbcode_on, $html_on, $smilies_on, $attach_sig, '$post_subject', '$post_message')";
- $result = $db->sql_query($sql);
-
- if ($result)
- {
- $new_post_id = $db->sql_nextid();
-
- $sql = "UPDATE " . TOPICS_TABLE . "
- SET topic_last_post_id = $new_post_id";
- if($mode == "reply")
- {
- $sql .= ", topic_replies = topic_replies + 1 ";
- }
- $sql .= " WHERE topic_id = $new_topic_id";
-
- if($db->sql_query($sql))
- {
- $sql = "UPDATE " . FORUMS_TABLE . "
- SET forum_last_post_id = $new_post_id, forum_posts = forum_posts + 1";
- if($mode == "newtopic")
- {
- $sql .= ", forum_topics = forum_topics + 1";
- }
- $sql .= " WHERE forum_id = $forum_id";
-
- if($db->sql_query($sql))
- {
- $sql = "UPDATE " . USERS_TABLE . "
- SET user_posts = user_posts + 1
- WHERE user_id = " . $user_id;
-
- if($db->sql_query($sql, END_TRANSACTION))
- {
- // SUCCESS.
- return true;
- }
- else
- {
- message_die(GENERAL_ERROR, "Error updating users table", "", __LINE__, __FILE__, $sql);
- }
- }
- else
- {
- message_die(GENERAL_ERROR, "Error updating forums table", "", __LINE__, __FILE__, $sql);
- }
- }
- else
- {
- // Rollback
- if($db->sql_layer == "mysql")
- {
- $sql = "DELETE FROM " . POSTS_TABLE . "
- WHERE post_id = $new_post_id";
- $db->sql_query($sql);
- }
- message_die(GENERAL_ERROR, "Error updating topics table", "", __LINE__, __FILE__, $sql);
- }
- }
- else
- {
- message_die(GENERAL_ERROR, "Error inserting data into posts table", "", __LINE__, __FILE__, $sql);
- }
-}
-
-
-function generatepost($size=850)
-{
- global $bigass_text;
- // Returns a string with a length between $size and $size*0.2
- $size = rand(0.2*$size, $size);
-
- $textsize = strlen($bigass_text);
- $currentsize = 0;
- // Add whole $text multiple times
- while($currentsize < $size && $size-$currentsize <= $textsize)
- {
- $message .= $bigass_text;
- $currentsize += $textsize;
- }
- // Add the remainder number of chars and return it.
- $message .= substr($bigass_text, 0, $size-$currentsize);
-
- return (addslashes($message));
-}
-
-
-function nrof($table)
-{
- global $db;
- $sql = "SELECT count(*) AS counted FROM $table";
- $result = $db->sql_query($sql);
- $topics = $db->sql_fetchrow($result);
- return $topics[counted];
-}
-
-
-function make_user($username)
-{
- global $db, $board_config;
-
- $password = md5("benchpass");
- $email = "nobody@localhost";
- $icq = "12345678";
- $website = "http://www.phpbb.com";
- $occupation = "phpBB tester";
- $location = "phpBB world hq";
- $interests = "Eating, sleeping, living, and breathing phpBB";
- $signature = "$username: phpBB tester.";
- $signature_bbcode_uid = "";
- $avatar_filename = "";
- $viewemail = 0;
- $aim = 0;
- $yim = 0;
- $msn = 0;
- $attachsig = 1;
- $allowsmilies = 1;
- $allowhtml = 1;
- $allowbbcode = 1;
- $allowviewonline = 1;
- $notifyreply = 0;
- $notifypm = 0;
- $user_timezone = $board_config['board_timezone'];
- $user_dateformat = $board_config['default_dateformat'];
- $user_lang = $board_config['default_lang'];
- $user_style = $board_config['default_style'];
-
-
- $sql = "SELECT MAX(user_id) AS total
- FROM " . USERS_TABLE;
- if($result = $db->sql_query($sql))
- {
- $row = $db->sql_fetchrow($result);
- $new_user_id = $row['total'] + 1;
-
- unset($result);
- unset($row);
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't obtained next user_id information.", "", __LINE__, __FILE__, $sql);
- }
-
- $sql = "SELECT MAX(group_id) AS total
- FROM " . GROUPS_TABLE;
- if($result = $db->sql_query($sql))
- {
- $row = $db->sql_fetchrow($result);
- $new_group_id = $row['total'] + 1;
-
- unset($result);
- unset($row);
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't obtained next user_id information.", "", __LINE__, __FILE__, $sql);
- }
-
-
- $sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmilies, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)
- VALUES ($new_user_id, '$username', " . time() . ", '$password', '$email', '$icq', '$website', '$occupation', '$location', '$interests', '$signature', '$signature_bbcode_uid', '$avatar_filename', $viewemail, '$aim', '$yim', '$msn', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $user_timezone, '$user_dateformat', '$user_lang', $user_style, 0, 1, ";
-
-
- $sql .= "1, '')";
-
- if($result = $db->sql_query($sql, BEGIN_TRANSACTION))
- {
- $sql = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator)
- VALUES ($new_group_id, '', 'Personal User', 1, 0)";
- if($result = $db->sql_query($sql))
- {
- $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
- VALUES ($new_user_id, $new_group_id, 0)";
- if($result = $db->sql_query($sql, END_TRANSACTION))
- {
-
- // SUCCESS.
- return true;
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't insert data into user_group table", "", __LINE__, __FILE__, $sql);
- }
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't insert data into groups table", "", __LINE__, __FILE__, $sql);
- }
- }
- else
- {
- message_die(GENERAL_ERROR, "Couldn't insert data into users table", "", __LINE__, __FILE__, $sql);
- }
-
-}
-
-?> \ No newline at end of file