Last modified: 2012-04-16 09:16:10 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T28464, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 26464 - Unit tests do not work in all DB languages
Unit tests do not work in all DB languages
Status: RESOLVED FIXED
Product: MediaWiki
Classification: Unclassified
Unit tests (Other open bugs)
unspecified
All All
: Normal minor (vote)
: ---
Assigned To: Antoine "hashar" Musso (WMF)
: i18n
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-12-28 20:39 UTC by X!
Modified: 2012-04-16 09:16 UTC (History)
4 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments
full phpunit.php log (2.95 KB, text/plain)
2012-03-10 03:16 UTC, Marcin Cieślak
Details
Proper full log from php-unit.php (92.29 KB, text/plain)
2012-03-10 13:49 UTC, Marcin Cieślak
Details

Description X! 2010-12-28 20:39:40 UTC
As a result of the recent change to clone the DB structure for unit tests, there is a problem with SQLite, which is what tesla uses for its CI server. Because SQlite does not use DB prefixes, it cannot determine which tables to copy and which ones to drop. As a result, it tries to drop all the tables (not a good thing). The whole CloneDatabase thing needs to be rethunk; it's a major problem with no obvious solution.
Comment 1 Max Semenik 2010-12-28 21:31:15 UTC
Drop stuff prefixed with parsertest_, then dupe the rest?
Comment 2 Platonides 2010-12-28 21:36:39 UTC
Can't we use a memory table for the SQLite target?
Comment 3 X! 2011-01-01 22:22:19 UTC
Fixed SQlite, which makes Tesla work again. Bumping importance down to minor.
Comment 4 Mark A. Hershberger 2011-01-29 00:29:52 UTC
I think these work w/o problem in SQLite.
Comment 5 X! 2011-01-29 02:18:38 UTC
It's just MySQL and SQLite that work.
Comment 6 Antoine "hashar" Musso (WMF) 2011-12-09 21:35:53 UTC
I guess this issue can be closed now.  DB cloning is way better now a day and works in MySQL / SQlite and Oracle. I am almost sure that works with PostgreSQL too.

So I am closing this bug which got eventually fixed this year.
Comment 7 Marcin Cieślak 2012-03-10 03:16:47 UTC
Created attachment 10209 [details]
full phpunit.php log

Result of

LC_MESSAGES=C LANG=C LC_TIME=C  php phpunit.php --configuration suite.xml --exclude-group Broken,Stub,ParserFuzz --log-junit $HOME/tests/log/postgres-log.xml



$wgSitename      = "PostgresWiki";
$wgMetaNamespace = "Wikipedia";
$wgArticlePath      = "/pg/wiki/$1";
$wgScriptPath       = "/pg/w";
$wgScriptExtension  = ".php";
$wgServer           = "http://tools.wikimedia.pl";
$wgStylePath        = "$wgScriptPath/skins";
$wgLogo             = "$wgStylePath/common/images/wiki.png";
$wgEnableEmail      = true;
$wgEnableUserEmail  = true; # UPO
$wgEnotifUserTalk      = true; # UPO
$wgEnotifWatchlist     = true; # UPO
$wgEmailAuthentication = true;
$wgDBtype           = "postgres";
$wgDBserver         = "localhost";
$wgDBname           = "trunk";
$wgDBport           = "5432";
$wgDBmwschema       = "mediawiki";
$wgEnableUploads  = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgUseInstantCommons  = true;
$wgShellLocale = "en_US.utf8";
$wgLanguageCode = "pl";
$wgDefaultSkin = "vector";
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl  = "";
$wgRightsText = "";
$wgRightsIcon = "";
$wgDiff3 = "/usr/bin/diff3";
$wgResourceLoaderMaxQueryLength = -1;
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
require_once( "$IP/extensions/Nuke/Nuke.php" );
$wgShowExceptionDetails = true;
$wgShowSQLErrors = true;
$wgShowDBErrorBacktrace = true;
$wgDebugDumpSql  = true;
$wgDebugDBTransactions  = true;
Comment 8 Marcin Cieślak 2012-03-10 13:49:59 UTC
Created attachment 10211 [details]
Proper full log from php-unit.php

Here is another log, the previous one was broken because of wrong php.ini settings.

There were 64 failures, because of canonical namespace names.

Wiki settings:

<?php
# This file was automatically generated by the MediaWiki 1.20alpha
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/DefaultSettings.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# http://www.mediawiki.org/wiki/Manual:Configuration_settings

# Protect against web entry
if ( !defined( 'MEDIAWIKI' ) ) {
	exit;
}

## Uncomment this to disable output compression
# $wgDisableOutputCompression = true;

$wgSitename      = "/pg/wiki/\$1";

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs please see:
## http://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath       = "/pg/w";
$wgScriptExtension  = ".php";

## The protocol and server name to use in fully-qualified URLs
$wgServer           = "http://tools.wikimedia.pl";

## The relative URL path to the skins directory
$wgStylePath        = "$wgScriptPath/skins";

## The relative URL path to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogo             = "$wgStylePath/common/images/wiki.png";

## UPO means: this is also a user preference option

$wgEnableEmail      = true;
$wgEnableUserEmail  = true; # UPO

$wgEmergencyContact = "apache@localhost";
$wgPasswordSender   = "apache@localhost";

$wgEnotifUserTalk      = false; # UPO
$wgEnotifWatchlist     = false; # UPO
$wgEmailAuthentication = true;

## Database settings
$wgDBtype           = "postgres";
$wgDBserver         = "localhost";
$wgDBname           = "minitest";
$wgDBuser           = "wikiuser";
$wgDBpassword       = "minitest";

# Postgres specific settings
$wgDBport           = "5432";
$wgDBmwschema       = "mediawiki";

## Shared memory settings
$wgMainCacheType    = CACHE_NONE;
$wgMemCachedServers = array();

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads  = false;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

# InstantCommons allows wiki to use images from http://commons.wikimedia.org
$wgUseInstantCommons  = false;

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale
$wgShellLocale = "en_US.utf8";

## If you want to use image uploads under safe mode,
## create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment
## this, if it's not already uncommented:
#$wgHashedUploadDirectory = false;

## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publically accessible from the web.
#$wgCacheDirectory = "$IP/cache";

# Site language code, should be one of the list in ./languages/Names.php
$wgLanguageCode = "en";

$wgSecretKey = "c027029d286ed47d2203f9d078e76ad46ef927b42a1ba63ecd125eebcc37cd05";

# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "4347204f166f4a00";

## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook', 'vector':
$wgDefaultSkin = "vector";

## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl  = "";
$wgRightsText = "";
$wgRightsIcon = "";

# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/usr/bin/diff3";

# Query string length limit for ResourceLoader. You should only set this if
# your web server has a query string length limit (then set it to that limit),
# or if you have suhosin.get.max_value_length set in php.ini (then set it to
# that value)
$wgResourceLoaderMaxQueryLength = -1;



# End of automatically generated settings.
# Add more configuration options below.

require_once( dirname( dirname( dirname( __FILE__ ) ) ) ) . '/ExtraSettings.php';


ExtraSettings.php:

<?php
$wgArticlePath      = "/pg/wiki/$1";
$wgSitename	    = "MiniTest";
if ( php_sapi_name() == 'cli' ) {
	$wgDebugLogFile = "/tmp/{$wgSitename}.log";
}
$wgLanguageCode     = "pl";
Comment 9 Antoine "hashar" Musso (WMF) 2012-03-12 10:57:42 UTC
Marcin, please open a new bug report.
Comment 10 Marcin Cieślak 2012-03-13 20:04:32 UTC
Stupid me, refiled as r35204. Sorry for noise.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links