X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Fmds%2FTestSessionFilter.cc;fp=src%2Fceph%2Fsrc%2Ftest%2Fmds%2FTestSessionFilter.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=29ce49256be849c663cb534586ebde982a6ab975;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/test/mds/TestSessionFilter.cc b/src/ceph/src/test/mds/TestSessionFilter.cc deleted file mode 100644 index 29ce492..0000000 --- a/src/ceph/src/test/mds/TestSessionFilter.cc +++ /dev/null @@ -1,148 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2012 Inktank - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#include - -#include "include/stringify.h" -#include "mds/SessionMap.h" - -#include "gtest/gtest.h" - -typedef std::vector args_eg; -typedef std::vector args_eg_set; - -TEST(MDSSessionFilter, ParseGood) -{ - args_eg_set examples = { - {"id=34"}, - {"auth_name=foxtrot"}, - {"state=reconnecting"}, - {"reconnecting=true"}, - {"client_metadata.root=/foo/bar"}, - {}, - {"id=123"}, - {"id=34", "client_metadata.root=/foo/bar", "auth_name=foxtrot", - "state=reconnecting", "reconnecting=true"} - }; - - for (auto ex : examples) { - SessionFilter f; - std::stringstream ss; - - std::cout << "Testing '" << ex << "'" << std::endl; - int r = f.parse(ex, &ss); - ASSERT_EQ(r, 0); - ASSERT_TRUE(ss.str().empty()); - } -} - -TEST(MDSSessionFilter, ParseBad) -{ - args_eg_set examples = { - {"rhubarb"}, - {"id="}, - {"id=custard"}, - {"=custard"}, - {"reconnecting=MAYBE"}, - {"reconnecting=2"} - }; - - for (auto ex : examples) { - SessionFilter f; - std::stringstream ss; - - std::cout << "Testing '" << ex << "'" << std::endl; - int r = f.parse(ex, &ss); - ASSERT_EQ(r, -EINVAL); - ASSERT_FALSE(ss.str().empty()); - } -} - -TEST(MDSSessionFilter, IdEquality) -{ - SessionFilter filter; - std::stringstream ss; - filter.parse({"id=123"}, &ss); - Session *a = new Session();; - Session *b = new Session();; - a->info.inst.name.parse("client.123"); - b->info.inst.name.parse("client.456"); - - ASSERT_TRUE(filter.match(*a, [](client_t c) -> bool {return false;})); - ASSERT_FALSE(filter.match(*b, [](client_t c) -> bool {return false;})); - a->put(); - b->put(); -} - -TEST(MDSSessionFilter, StateEquality) -{ - SessionFilter filter; - std::stringstream ss; - filter.parse({"state=closing"}, &ss); - Session *a = new Session(); - a->set_state(Session::STATE_CLOSING); - Session *b = new Session(); - b->set_state(Session::STATE_OPENING); - - ASSERT_TRUE(filter.match(*a, [](client_t c) -> bool {return false;})); - ASSERT_FALSE(filter.match(*b, [](client_t c) -> bool {return false;})); - a->put(); - b->put(); -} - -TEST(MDSSessionFilter, AuthEquality) -{ - SessionFilter filter; - std::stringstream ss; - filter.parse({"auth_name=rhubarb"}, &ss); - Session *a = new Session(); - a->info.auth_name.set_id("rhubarb"); - Session *b = new Session(); - b->info.auth_name.set_id("custard"); - - ASSERT_TRUE(filter.match(*a, [](client_t c) -> bool {return false;})); - ASSERT_FALSE(filter.match(*b, [](client_t c) -> bool {return false;})); - a->put(); - b->put(); -} - -TEST(MDSSessionFilter, MetadataEquality) -{ - SessionFilter filter; - std::stringstream ss; - int r = filter.parse({"client_metadata.root=/rhubarb"}, &ss); - ASSERT_EQ(r, 0); - Session *a = new Session(); - a->set_client_metadata({{"root", "/rhubarb"}}); - Session *b = new Session(); - b->set_client_metadata({{"root", "/custard"}}); - - ASSERT_TRUE(filter.match(*a, [](client_t c) -> bool {return false;})); - ASSERT_FALSE(filter.match(*b, [](client_t c) -> bool {return false;})); - a->put(); - b->put(); -} - -TEST(MDSSessionFilter, ReconnectingEquality) -{ - SessionFilter filter; - std::stringstream ss; - int r = filter.parse({"reconnecting=true"}, &ss); - ASSERT_EQ(r, 0); - Session *a = new Session(); - - ASSERT_TRUE(filter.match(*a, [](client_t c) -> bool {return true;})); - ASSERT_FALSE(filter.match(*a, [](client_t c) -> bool {return false;})); - a->put(); -}