Commit faa1241d authored by Renato Figueiro Maia's avatar Renato Figueiro Maia

[OPENBUS-1599] Criar suite de testes para o core e sdk-lua do OpenBus 2.0

- Correção para evitar criar chaves de acesso em novas conexões criadas durante o teste (ficou faltando uma alteração no commit 130448).

[OPENBUS-1837] Fazer com que a operação de remoção de logins da base (invalidação) seja atômica
- O mesmo foi feito para o caso de remoção de ofertas, mesmo porque não era feito controle de acesso concorrente o que indica um bug na implementação.
- Foi necessário alterar os testes introduzindo uma espera (0.1 segundos) entre a operação que causa a notificação e a verficiação se a notificação foi recebida, pois agora as notificações são feitas assincronamente.

[OPENBUS-1836] Fazer com que 'AccessControl::getValidity' só indique que a validade de um login é zero se o login estiver inválido
- Com essa alteração, os testes passam mesmo com um 'busservices' rodando com lease de um segundo (mínimo possível) e expiration gap de 0.25 segundos.

git-svn-id: https://subversion.tecgraf.puc-rio.br/engdist/openbus/sdk/lua/branches/openbus_v2_proto@130472 ae0415b3-e90b-0410-900d-d0be9363c56b
parent 9b94ebc5
......@@ -53,21 +53,6 @@ local callwithin do
end
end
local invalidate, shutdown, leasetime do
local manager = openbus.initORB().OpenBusConnectionManager
local conn = manager:createConnection(bushost, busport)
local logins = conn.logins
conn:loginByPassword(admin, admpsw)
manager:setDefaultConnection(conn)
leasetime = conn.AccessControl:renew()
function invalidate(loginId)
logins:invalidateLogin(loginId)
end
function shutdown()
conn:logout()
end
end
local loginways = {
loginByPassword = function() return user, password end,
loginByCertificate = function() return system, syskey end,
......@@ -77,7 +62,7 @@ local loginways = {
return {
id = "60D57646-33A4-4108-88DD-AE9B7A9E3C7A",
entity = system,
}, leasetime
}, 1
end,
cancel = function () end,
},
......@@ -177,6 +162,26 @@ do log:TEST "connect to bus"
end
end
-- create a valid key to be used as a wrong key in the tests below.
-- the generation of this key is too time consuming and may delay the renewer
-- thread of the admin account to renew the admin login in time.
local WrongKey = pubkey.create(idl.const.EncryptedBlockSize)
-- login as admin and provide additional functionality for the test
local invalidate, shutdown, leasetime do
local manager = openbus.initORB().OpenBusConnectionManager
local conn = manager:createConnection(bushost, busport)
local logins = conn.logins
conn:loginByPassword(admin, admpsw)
manager:setDefaultConnection(conn)
leasetime = conn.AccessControl:renew()
function invalidate(loginId)
logins:invalidateLogin(loginId)
end
function shutdown()
conn:logout()
end
end
for _, connOp in ipairs({"DefaultConnection", "Requester"}) do
local connIdx = 0
repeat
......@@ -232,8 +237,7 @@ for _, connOp in ipairs({"DefaultConnection", "Requester"}) do
do log:TEST "login with wrong private key"
local conn = conns[1]
local ex = catcherr(conn.loginByCertificate, conn, system,
pubkey.create(idl.const.EncryptedBlockSize))
local ex = catcherr(conn.loginByCertificate, conn, system, WrongKey)
assert(ex:find(msg.WrongPrivateKey, 1, true))
assertlogoff(conn)
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment