83 lines
2.3 KiB
JavaScript
83 lines
2.3 KiB
JavaScript
var common = require('../../test/common');
|
|
var connection = common.createConnection();
|
|
var assert = require('assert');
|
|
var Faker = require('charlatan');
|
|
var fs = require('fs');
|
|
|
|
var createSql = fs.readFileSync('./schema.sql').toString();
|
|
|
|
// use seed to make it consistent between runs
|
|
// copy-paste from http://stackoverflow.com/questions/521295/javascript-random-seeds
|
|
|
|
var m_w = 123456789;
|
|
var m_z = 987654321;
|
|
var mask = 0xffffffff;
|
|
|
|
// Takes any integer
|
|
function seed(i) {
|
|
m_w = i;
|
|
}
|
|
|
|
// Returns number between 0 (inclusive) and 1.0 (exclusive),
|
|
// just like Math.random().
|
|
function rand()
|
|
{
|
|
m_z = (36969 * (m_z & 65535) + (m_z >> 16)) & mask;
|
|
m_w = (18000 * (m_w & 65535) + (m_w >> 16)) & mask;
|
|
var result = ((m_z << 16) + m_w) & mask;
|
|
result /= 4294967296;
|
|
return result + 0.5;
|
|
}
|
|
|
|
seed(123);
|
|
|
|
connection.query(createSql);
|
|
connection.query("DELETE FROM mysql2_test");
|
|
|
|
function insertRow(r) {
|
|
connection.query("INSERT INTO mysql2_test SET ? ", r);
|
|
}
|
|
|
|
var num_rows = 10000;
|
|
|
|
var five_words, twenty5_paragraphs;
|
|
for (var i = 0; i < num_rows; ++i)
|
|
{
|
|
five_words = Faker.Lorem.words(1 + rand(4)).join(' ').slice(0, 10);
|
|
twenty5_paragraphs = Faker.Lorem.paragraphs(1 + rand(24)).join(' ');
|
|
insertRow({
|
|
bit_test: 1,
|
|
tiny_int_test: rand(128),
|
|
small_int_test: rand(32767),
|
|
medium_int_test: rand(8388607),
|
|
int_test: rand(2147483647),
|
|
big_int_test: rand(9223372036854775807),
|
|
float_test: rand(32767)/1.87,
|
|
float_zero_test: 0.0,
|
|
double_test: rand(8388607)/1.87,
|
|
decimal_test: rand(8388607)/1.87,
|
|
decimal_zero_test: 0,
|
|
date_test: '2010-4-4',
|
|
date_time_test: '2010-4-4 11:44:00',
|
|
timestamp_test: '2010-4-4 11:44:00',
|
|
time_test: '11:44:00',
|
|
year_test: 14,
|
|
char_test: five_words,
|
|
varchar_test: five_words,
|
|
binary_test: five_words,
|
|
varbinary_test: five_words,
|
|
tiny_blob_test: five_words,
|
|
tiny_text_test: Faker.Lorem.paragraph(rand(5)),
|
|
blob_test: twenty5_paragraphs,
|
|
text_test: twenty5_paragraphs,
|
|
medium_blob_test: twenty5_paragraphs,
|
|
medium_text_test: twenty5_paragraphs,
|
|
long_blob_test: twenty5_paragraphs,
|
|
long_text_test: twenty5_paragraphs,
|
|
enum_test: ['val1', 'val2'][rand(2)],
|
|
set_test: ['val1', 'val2', 'val1,val2'][rand(3)]
|
|
});
|
|
}
|
|
|
|
connection.end();
|