gem5-dev@gem5.org

The gem5 Developer List

View all threads

[M] Change in gem5/gem5[develop]: base: Make ListenSocket::listen(int port) protected.

GB
Gabe Black (Gerrit)
Wed, Mar 29, 2023 3:05 AM

Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/69161?usp=email )

Change subject: base: Make ListenSocket::listen(int port) protected.
......................................................................

base: Make ListenSocket::listen(int port) protected.

Stop making the old API available.

Change-Id: I70752d081cb572a8ae5bf396d2ea43ecc7be1e9c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/69161
Maintainer: Gabe Black gabe.black@gmail.com
Reviewed-by: Yu-hsin Wang yuhsingw@google.com
Tested-by: kokoro noreply+kokoro@google.com

M src/base/socket.hh
M src/base/socket.test.cc
2 files changed, 19 insertions(+), 35 deletions(-)

Approvals:
Yu-hsin Wang: Looks good to me, approved
Gabe Black: Looks good to me, approved
kokoro: Regressions pass

diff --git a/src/base/socket.hh b/src/base/socket.hh
index 7a616bd..81f4d62 100644
--- a/src/base/socket.hh
+++ b/src/base/socket.hh
@@ -99,6 +99,8 @@
*/
static void cleanup();

  • virtual bool listen(int port);

  • public:
    /**
    * @ingroup api_socket
    @@ -110,7 +112,6 @@

    virtual int accept();
    
  • virtual bool listen(int port);
    virtual void listen();

    virtual void output(std::ostream &os) const;
    diff --git a/src/base/socket.test.cc b/src/base/socket.test.cc
    index cb24c49..8e1c25b 100644
    --- a/src/base/socket.test.cc
    +++ b/src/base/socket.test.cc
    @@ -121,6 +121,7 @@
    class MockListenSocket : public ListenSocket
    {
    public:

  • MockListenSocket(int port) : ListenSocket("mock", port) {}
    /*
    • This mock Listen Socket is used to ensure the static variables are
      reset
    • back to their default values after deconstruction (i.e., after a
      test
      @@ -138,7 +139,7 @@
    • Tests the default behavior where listenSocket is constructed, and is
    • not listening to a port.
      */
  • MockListenSocket listen_socket;
  • MockListenSocket listen_socket(-1);
    EXPECT_EQ(-1, listen_socket.getfd());
    EXPECT_FALSE(listen_socket.islistening());
    EXPECT_FALSE(listen_socket.allDisabled());
    @@ -146,7 +147,7 @@

TEST(SocketTest, DisableAll)
{

  • MockListenSocket listen_socket;
  • MockListenSocket listen_socket(-1);
    listen_socket.disableAll();
    EXPECT_EQ(-1, listen_socket.getfd());
    EXPECT_FALSE(listen_socket.islistening());
    @@ -155,8 +156,8 @@

TEST(SocketTest, ListenToPort)
{

  • MockListenSocket listen_socket;
  • EXPECT_TRUE(listen_socket.listen(TestPort1));
  • MockListenSocket listen_socket(TestPort1);
  • listen_socket.listen();
    EXPECT_NE(-1, listen_socket.getfd());
    EXPECT_TRUE(listen_socket.islistening());
    EXPECT_FALSE(listen_socket.allDisabled());
    @@ -164,32 +165,14 @@

TEST(SocketTest, RelistenWithSameInstanceSamePort)
{

  • MockListenSocket listen_socket;
  • EXPECT_TRUE(listen_socket.listen(TestPort1));
  • MockListenSocket listen_socket(TestPort1);

  • listen_socket.listen();

    /*

    • You cannot listen to another port if you are already listening to
      one.
      */
      gtestLogOutput.str("");
  • EXPECT_ANY_THROW(listen_socket.listen(TestPort1));
  • std::string expected =
  •    "panic: panic condition listening occurred: "
    
  •    "Socket already listening!\n";
    
  • std::string actual = gtestLogOutput.str();
  • EXPECT_EQ(expected, actual);
    -}

-TEST(SocketTest, RelistenWithSameInstanceDifferentPort)
-{

  • MockListenSocket listen_socket;
  • EXPECT_TRUE(listen_socket.listen(TestPort1));
  • /*
  • * You cannot listen to another port if you are already listening to  
    

one.

  • */
    
  • gtestLogOutput.str("");
  • EXPECT_ANY_THROW(listen_socket.listen(TestPort2));
  • EXPECT_ANY_THROW(listen_socket.listen());
    std::string expected =
    "panic: panic condition listening occurred: "
    "Socket already listening!\n";
    @@ -199,30 +182,30 @@

TEST(SocketTest, RelistenWithDifferentInstanceOnDifferentPort)
{

  • MockListenSocket listen_socket;
  • EXPECT_TRUE(listen_socket.listen(TestPort1));
  • MockListenSocket listen_socket(TestPort1);

  • listen_socket.listen();

    /*

    • You can listen to another port with a different instance.
      */
  • MockListenSocket listen_socket_2;
  • EXPECT_TRUE(listen_socket_2.listen(TestPort2));
  • MockListenSocket listen_socket_2(TestPort2);
  • listen_socket_2.listen();
    }

TEST(SocketTest, RelistenWithDifferentInstanceOnSamePort)
{

  • MockListenSocket listen_socket;
  • EXPECT_TRUE(listen_socket.listen(TestPort1));
  • MockListenSocket listen_socket(TestPort1);

  • listen_socket.listen();

    /*

    • You cannot listen to a port that's already being listened to.
      */
  • MockListenSocket listen_socket_2;
  • EXPECT_FALSE(listen_socket_2.listen(TestPort1));
  • MockListenSocket listen_socket_2(TestPort1);
  • listen_socket_2.listen();
    }

TEST(SocketTest, AcceptError)
{

  • MockListenSocket listen_socket;
  • MockListenSocket listen_socket(-1);
    EXPECT_EQ(-1, listen_socket.accept());
    }

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/69161?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I70752d081cb572a8ae5bf396d2ea43ecc7be1e9c
Gerrit-Change-Number: 69161
Gerrit-PatchSet: 3
Gerrit-Owner: Gabe Black gabe.black@gmail.com
Gerrit-Reviewer: Bobby Bruce bbruce@ucdavis.edu
Gerrit-Reviewer: Daniel Carvalho odanrc@yahoo.com.br
Gerrit-Reviewer: Gabe Black gabe.black@gmail.com
Gerrit-Reviewer: Jui-min Lee fcrh@google.com
Gerrit-Reviewer: Yu-hsin Wang yuhsingw@google.com
Gerrit-Reviewer: kokoro noreply+kokoro@google.com
Gerrit-CC: Gabe Black gabeblack@google.com
Gerrit-MessageType: merged

Gabe Black has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/69161?usp=email ) Change subject: base: Make ListenSocket::listen(int port) protected. ...................................................................... base: Make ListenSocket::listen(int port) protected. Stop making the old API available. Change-Id: I70752d081cb572a8ae5bf396d2ea43ecc7be1e9c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/69161 Maintainer: Gabe Black <gabe.black@gmail.com> Reviewed-by: Yu-hsin Wang <yuhsingw@google.com> Tested-by: kokoro <noreply+kokoro@google.com> --- M src/base/socket.hh M src/base/socket.test.cc 2 files changed, 19 insertions(+), 35 deletions(-) Approvals: Yu-hsin Wang: Looks good to me, approved Gabe Black: Looks good to me, approved kokoro: Regressions pass diff --git a/src/base/socket.hh b/src/base/socket.hh index 7a616bd..81f4d62 100644 --- a/src/base/socket.hh +++ b/src/base/socket.hh @@ -99,6 +99,8 @@ */ static void cleanup(); + virtual bool listen(int port); + public: /** * @ingroup api_socket @@ -110,7 +112,6 @@ virtual int accept(); - virtual bool listen(int port); virtual void listen(); virtual void output(std::ostream &os) const; diff --git a/src/base/socket.test.cc b/src/base/socket.test.cc index cb24c49..8e1c25b 100644 --- a/src/base/socket.test.cc +++ b/src/base/socket.test.cc @@ -121,6 +121,7 @@ class MockListenSocket : public ListenSocket { public: + MockListenSocket(int port) : ListenSocket("mock", port) {} /* * This mock Listen Socket is used to ensure the static variables are reset * back to their default values after deconstruction (i.e., after a test @@ -138,7 +139,7 @@ * Tests the default behavior where listenSocket is constructed, and is * not listening to a port. */ - MockListenSocket listen_socket; + MockListenSocket listen_socket(-1); EXPECT_EQ(-1, listen_socket.getfd()); EXPECT_FALSE(listen_socket.islistening()); EXPECT_FALSE(listen_socket.allDisabled()); @@ -146,7 +147,7 @@ TEST(SocketTest, DisableAll) { - MockListenSocket listen_socket; + MockListenSocket listen_socket(-1); listen_socket.disableAll(); EXPECT_EQ(-1, listen_socket.getfd()); EXPECT_FALSE(listen_socket.islistening()); @@ -155,8 +156,8 @@ TEST(SocketTest, ListenToPort) { - MockListenSocket listen_socket; - EXPECT_TRUE(listen_socket.listen(TestPort1)); + MockListenSocket listen_socket(TestPort1); + listen_socket.listen(); EXPECT_NE(-1, listen_socket.getfd()); EXPECT_TRUE(listen_socket.islistening()); EXPECT_FALSE(listen_socket.allDisabled()); @@ -164,32 +165,14 @@ TEST(SocketTest, RelistenWithSameInstanceSamePort) { - MockListenSocket listen_socket; - EXPECT_TRUE(listen_socket.listen(TestPort1)); + MockListenSocket listen_socket(TestPort1); + listen_socket.listen(); /* * You cannot listen to another port if you are already listening to one. */ gtestLogOutput.str(""); - EXPECT_ANY_THROW(listen_socket.listen(TestPort1)); - std::string expected = - "panic: panic condition listening occurred: " - "Socket already listening!\n"; - std::string actual = gtestLogOutput.str(); - EXPECT_EQ(expected, actual); -} - -TEST(SocketTest, RelistenWithSameInstanceDifferentPort) -{ - MockListenSocket listen_socket; - EXPECT_TRUE(listen_socket.listen(TestPort1)); - - /* - * You cannot listen to another port if you are already listening to one. - */ - gtestLogOutput.str(""); - EXPECT_ANY_THROW(listen_socket.listen(TestPort2)); - + EXPECT_ANY_THROW(listen_socket.listen()); std::string expected = "panic: panic condition listening occurred: " "Socket already listening!\n"; @@ -199,30 +182,30 @@ TEST(SocketTest, RelistenWithDifferentInstanceOnDifferentPort) { - MockListenSocket listen_socket; - EXPECT_TRUE(listen_socket.listen(TestPort1)); + MockListenSocket listen_socket(TestPort1); + listen_socket.listen(); /* * You can listen to another port with a different instance. */ - MockListenSocket listen_socket_2; - EXPECT_TRUE(listen_socket_2.listen(TestPort2)); + MockListenSocket listen_socket_2(TestPort2); + listen_socket_2.listen(); } TEST(SocketTest, RelistenWithDifferentInstanceOnSamePort) { - MockListenSocket listen_socket; - EXPECT_TRUE(listen_socket.listen(TestPort1)); + MockListenSocket listen_socket(TestPort1); + listen_socket.listen(); /* * You cannot listen to a port that's already being listened to. */ - MockListenSocket listen_socket_2; - EXPECT_FALSE(listen_socket_2.listen(TestPort1)); + MockListenSocket listen_socket_2(TestPort1); + listen_socket_2.listen(); } TEST(SocketTest, AcceptError) { - MockListenSocket listen_socket; + MockListenSocket listen_socket(-1); EXPECT_EQ(-1, listen_socket.accept()); } -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/69161?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: develop Gerrit-Change-Id: I70752d081cb572a8ae5bf396d2ea43ecc7be1e9c Gerrit-Change-Number: 69161 Gerrit-PatchSet: 3 Gerrit-Owner: Gabe Black <gabe.black@gmail.com> Gerrit-Reviewer: Bobby Bruce <bbruce@ucdavis.edu> Gerrit-Reviewer: Daniel Carvalho <odanrc@yahoo.com.br> Gerrit-Reviewer: Gabe Black <gabe.black@gmail.com> Gerrit-Reviewer: Jui-min Lee <fcrh@google.com> Gerrit-Reviewer: Yu-hsin Wang <yuhsingw@google.com> Gerrit-Reviewer: kokoro <noreply+kokoro@google.com> Gerrit-CC: Gabe Black <gabeblack@google.com> Gerrit-MessageType: merged