The tests have been modified to work under NUnit 2.4.6
(the one currently used in the project).
They will also work with NUnit 2.5+ as is, but will look better
if you #define NUNIT25 for them.
NOTE that this INI file is currently loaded as a embedded RESOURCE, which is weird and has a
disadvantage of having to rebuild the Tests whenever the conn strings are changed.
The only reason is that I couldn't figure out a reliable way to put this INI into the correct
dir at runtime. If somebody can do it, that would be cool.
AssetTests: The name has changed to reflect the fact it is no longer a base class,
but the complete asset test for all supported databases.
The test can also check storing of CreatorID, but the feature is
disabled at this commit!
The problem was that some tests relied on prior tests
to leave the DB in a particular state, but the test class
cleared the DB every time. The affected tests have been
merged into one to remove the dependencies.
tested on all 3 Dbs, all tests green.
Fixed unfinished SQL in FetchAssetMetadataSet, fixed SQL
in UpdateAsset (must not modify ID).
NOT tested! But apparently shouldn't work worse than the previous version,
esp. the FetchMetadata thing.
These are some generic classes that simplify writing tests
for any of the data connectors and databases. Among other
things, configuring the connection strings is done once,
in a separate resource file.
Tests based on the new BasicDataServiceTest class require
NUnit 2.5 or better.
Contains a migration.
SQLite: May contain nuts.
The SQLite migration copies the entire asset table. Be prepared for quite a wait. Don't interrupt it. Back up your assets db.
BasicAssetTest checks CreatorID storage, new test for weird CreatorID
(now also checks that non-GUID or empty CreatorID gets stored correctly)
Signed-off-by: Melanie <melanie@t-data.com>
The asset type wasn't in the list of "DontScramble" fields,
so the test assets were stored with randomized type, which
caused exception on reading them.
Also the scrambler was moved from local var to the class level,
so it could be used in the new tests I've added (see the next commit).
Throwing an Ex. with SQL command in the message looks weird,
this is a bit better, but I'm still not sure if that's the
proper way to handle. Also, there is a catch one level up,
so is this one necessary?
Change migration error reporting to not truncate the statement when
reporting. It's a bit messier than the old error reporting, but at least
one gets an idea of what could be wrong again. And things look a lot
neater now.
This fixes some type conversion bugs and also makes the estate lists
work properly for MSSQL. Strawberry, please check this.
Signed-off-by: Melanie <melanie@t-data.com>
This was needed if we want to update to the latest MySQL
connector dll. It automatically converts CHAR(36) to
Guids, so getting them as strings no longer works.
By using DBGuid.FromDB(), we unlink from any particular
storage format of GUIDs, could even make them BINARY(16)
if we like.
Actually not all MySql units are touched, but the remaining ones don't
seem to be affected (they don't read GUIDs from DB)
This DBMS-independent function to be used converting UUIDs
from whatever format used in the DB (string/binary/Guid).
This is mostly needed for MySQL, as in MSSQL they are always
UNIQUEIDENTIFIERs and in SQLite always strings (but would look
better if we use it there anyway).
Scans for migration resources in either old-style "scattered" (one file per version)
or new-style "integrated" format (single file "Resources/{StoreName}.migrations[.nnn]") with ":VERSION nnn" sections).
In the new-style migrations it also recognizes ':GO' separators for parts of the SQL script
that must be sent to the server separately. The old-style migrations are loaded each in one piece
and don't support the ':GO' feature.
Status: TESTED and works fine in all modes!
CHANGES THE ASSET SERVER PROTOCOL and means you CAN NOT MIX PRIOR VERSIONS
WITH LATER ONES. It may also eat your babies, yada, yada, yada.
The usual cautions for migrations to the assets table apply.
Coding: Can not guarantee nut free.
this seems the least evil way forward since mono 2.6 and later will see increasing usage, and this only works with what was SQLiteNG
MAC USERS WILL NEED TO CHANGE REFERENCES TO "OpenSim.Data.SQLite.dll" to "OpenSim.Data.SQLiteLegacy.dll" in OpenSim.ini and config-include/StandaloneCommon.ini (if using standalone)
See the OpenSim.ini.example and StandaloneCommon.ini.example files for more details
This commit also temporarily changes unsigned ParentEstateID values in the OpenSim.Data.Tests to signed temporarily, since the new plugin enforces creation of signed fields in the database (which is what the SQL actually specifies). And change data columns in sqlite is a pita.
Include the library so that Windows builds correctly
It appears that Windows is okay with either SQLite or SQLiteNG
Incorporate the latest fixes made by Diva to OpenSim.Data.SQLite
of a region and joining it to an existing estate or creating a new estate,
as well as creating an estate owner if in standalone, and assigning estate
owners. In Grid mode, existing users must be used. MySQL ONLY!!!! so far, as
I can't develop or test for either SQLite or MSSQL.
to start estates at 100. Existing databases having autcreated estates below
100 will see a gap in estate numbering. Other database implementors need to
ensure that no estates with numbers less that 100 are autocreated, unless
they are prepared to deal with the viewer's built-in notions of
Linden Mainland
Unfortunately, this meant publicly exposing the underlying service for the connector.
The other solution would be to create alternative initializers for services and connectors where objects could be given directly rather than loaded indirectly through config.
Unfortunately, this would require a lot of work in this case but might be the better way forward.
only tested for a single user so this may still fail for multiple users
this may well be all academic anyway since standalone need to persistently store home location in presence data in some way
This is the big one. master is now presence-refactor (pre 0.7). A new branch 0.6.9-post-fixes and leading tag 0.6.9 has been created. The Presence-refactor
branch remains for experimental work.
* Added a 'Create Update Statement' method that takes two fields for a primary key
* Added an Update and Delete command for parcels and land access list table rows.
This resolves the problem where eyes and hair would turn white on standalone configurations
When a client receives body part information, for some insane reason or other it always ends up uploading this back to the server and then immediately re-requesting it.
This should have been okay since we stored that asset in cache. However, the standalone asset service connector was not checking this cache properly, so every time the client made the request for the asset it has just loaded it would get a big fat null back in the face, causing it to make clothes and hair white.
This bug did not affect grids since they use a different service connector.
This merge was very conflicted. I think I got them all, but I can't be sure.
I had to merge to master or risk divergence to the point of unmergeability.