MXS-1220: Add server test

The test creates, alters and destroys servers.
This commit is contained in:
Markus Mäkelä 2017-05-04 17:06:40 +03:00
parent a3c683ab87
commit 9495438f2b
6 changed files with 98 additions and 22 deletions

View File

@ -105,8 +105,8 @@ HttpRequest::HttpRequest(struct MHD_Connection *connection, string url, string m
HttpRequest::~HttpRequest()
{
}
bool HttpRequest::validate_api_version()
{
bool rval = false;

View File

@ -573,5 +573,7 @@ static SpinLock resource_lock;
HttpResponse resource_handle_request(const HttpRequest& request)
{
SpinLockGuard guard(resource_lock);
MXS_DEBUG("%s %s %s", request.get_verb().c_str(), request.get_uri().c_str(),
request.get_json_str().c_str());
return resources.process_request(request);
}

View File

@ -9,27 +9,15 @@ test -z "$MAXSCALE_DIR" && exit 1
maxscaledir=$MAXSCALE_DIR
pid=`cat $maxscaledir/maxscale.pid`
echo $pid
for ((i=0;i<60;i++))
do
kill -0 $pid
if [ $? -eq 0 ]
then
# Process is still up
kill $pid
if [ $i -gt 3 ]
then
sleep 0.1
fi
else
break
fi
pkill maxscale || break
sleep 0.5
done
# If it wasn't dead before, now it is
pgrep maxscale && pkill -9 maxscale
rm -r $maxscaledir/lib/maxscale
rm -r $maxscaledir/cache/maxscale
rm -r $maxscaledir/run/maxscale

View File

@ -2,6 +2,8 @@
require("../utils.js")()
before(startMaxScale)
describe("Resource Collections", function(){
var tests = [
@ -48,3 +50,5 @@ describe("Individual Resources", function(){
});
})
});
after(stopMaxScale)

View File

@ -0,0 +1,82 @@
require("../utils.js")()
var server = {
data: {
id: "test-server",
type: "servers",
attributes: {
parameters: {
port: 3003,
address: "127.0.0.1",
protocol: "MySQLBackend"
}
}
}
};
var rel = {
services: {
data: [
{ id: "RW-Split-Router", type: "services" },
{ id: "Read-Connection-Router", type: "services" },
]
}
};
describe("Creating a Server", function(){
before(startMaxScale)
it("create the server", function(){
return request.post(base_url + "/servers/", {json: server })
.should.be.fulfilled
});
it("request the created server", function(){
return request.get(base_url + "/servers/" + server.data.id)
.should.be.fulfilled
});
it("update the created server", function(){
server.data.attributes.parameters.weight = 10
return request.put(base_url + "/servers/" + server.data.id, { json: server})
.should.be.fulfilled
});
it("destroy the server", function(){
return request.delete(base_url + "/servers/" + server.data.id)
.should.be.fulfilled
});
after(stopMaxScale)
});
describe("Creating a Server With Relationships", function(){
before(startMaxScale)
// We need a deep copy of the original server
var rel_server = JSON.parse(JSON.stringify(server))
rel_server.data.relationships = rel
it("create the server", function(){
return request.post(base_url + "/servers/", {json: rel_server})
.should.be.fulfilled
});
it("request the server", function(){
return request.get(base_url + "/servers/" + rel_server.data.id)
.should.be.fulfilled
});
it("remove relationships", function(){
delete rel_server.data["relationships"]
return request.put(base_url + "/servers/" + rel_server.data.id, {json: rel_server})
.should.be.fulfilled
});
it("destroy the server", function(){
return request.delete(base_url + "/servers/" + rel_server.data.id)
.should.be.fulfilled
});
after(stopMaxScale)
});

View File

@ -421,7 +421,7 @@ module.exports = function() {
this.validate_func = ajv.compile(json_api_schema)
this.validate = validate_json
this.base_url = "http://localhost:8989/v1"
this.before(function(done) {
this.startMaxScale = function(done) {
child_process.execFile("./before.sh", function(err, stdout, stderr) {
if (process.env.MAXSCALE_DIR == null) {
throw new Error("MAXSCALE_DIR is not set");
@ -429,10 +429,10 @@ module.exports = function() {
done()
})
});
this.after(function(done) {
};
this.stopMaxScale = function(done) {
child_process.execFile("./after.sh", function(err, stdout, stderr) {
done()
})
});
};
}