Skip to content

Commit

Permalink
Add constants for code-reuse and cleanup some compiler warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
masonticehurst committed Jan 24, 2024
1 parent 3b1a763 commit e86234e
Showing 1 changed file with 43 additions and 38 deletions.
81 changes: 43 additions & 38 deletions eRINA_Tests/src/test_rina_register.adb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
pragma Style_Checks (Off);

with AUnit.Assertions;
with exceptions;
with AUnit.Test_Caller;
with GNAT.OS_Lib;
with Bindings.Rlite.API;
Expand All @@ -13,6 +12,10 @@ package body Test_RINA_Register is
use GNAT.OS_Lib;
use Bindings.Rlite.API;

Application_Name : constant String := "TestApplicationName";
DIF_Name : constant String := "test.DIF";
RINA_Dev_FD : constant File_Descriptor := RINA_Open;

package Caller is new AUnit.Test_Caller (Test);

Test_Suite : aliased AUnit.Test_Suites.Test_Suite;
Expand Down Expand Up @@ -42,14 +45,13 @@ package body Test_RINA_Register is
Test_Suite.Add_Test (Caller.Create
(Name_009 & " Verify rina_register successfully reg. an App name to DIF", Test_Register_AppName_to_DIF'Access));
Test_Suite.Add_Test (Caller.Create
(Name_010 & " Verify rina_register returns -1 when inval. file descriptor is passed", Test_Register_Application_Empty'Access));
(Name_010 & " Verify rina_register returns -1 when inval. file descriptor is passed", Test_Register_Invalid_File_Descriptor'Access));

return Test_Suite'Access;
end Suite;

--Test Case 003
procedure Test_Register_DIF_Length (Object : in out Test) is
RINA_Dev_FD : constant File_Descriptor := RINA_Open;
Dif_Name : constant String := "this___is___a___really___long___dif___name___that___should___fail___because___it___is___over___128___characters___long___________";
Register_Success : File_Descriptor := Invalid_FD;
Caused_Error : Boolean := False;
Expand All @@ -65,90 +67,93 @@ package body Test_RINA_Register is

--Test Case 004
procedure Test_Register_DIF_Empty (Object : in out Test) is
RINA_Dev_FD : constant File_Descriptor := RINA_Open;
DIF_Name : constant String := "";
Register_Success : File_Descriptor := Invalid_FD;
Caused_Error : Boolean := False;
begin
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, "TestApplicationName", 0);
Register_Success := RINA_Register (RINA_Dev_FD, "", Application_Name, 0);
exception
when Exceptions.Bounded_Length_Expcetion =>
Caused_Error := True;

Assert(Register_Success = Invalid_FD, "DIF_Name blank");
Assert(Caused_Error and Register_Success = Invalid_FD, "DIF_Name blank");
end Test_Register_DIF_Empty;

--Test Case 005
procedure Test_Register_Not_Exist_IPCP (Object : in out Test) is
DIF_Name : Bounded_String := To_Bounded_String ("TestDIF");
Register_Success : File_Descriptor := Invalid_FD;
RINA_Dev_FD : File_Descriptor := RINA_Open;
Caused_Error : Boolean := False;
begin
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, To_Bounded_String ("TestApplicationName"), 0);
exception
when EXCEPTIONS.DIF_REGISTRATION_FAILURE =>
Caused_Error := True;
Assert(Caused_Error, "DIF_Name does not exist in IPCP");
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, Application_Name, 0);
exception
when EXCEPTIONS.DIF_REGISTRATION_FAILURE =>
Caused_Error := True;

Assert(Caused_Error and Register_Success = Invalid_FD, "DIF_Name does not exist in IPCP");
end Test_Register_Not_Exist_IPCP;

--Test Case 006
procedure Test_Register_Application_Length (Object : in out Test) is
Fd : File_Descriptor := Invalid_FD;
App_Name : Bounded_String;
Register_Success : File_Descriptor := Invalid_FD;
App_Name : constant String := "this___is___a___really___long___app___name___that___should___fail___because___it___is___over___128___characters___long___________";
Caused_Error : Boolean := False;
begin
App_Name := To_Bounded_String ("nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, App_Name, 0);
exception
when Ada.Strings.Length_Error =>
when Exceptions.Bounded_Length_Expcetion =>
Caused_Error := True;

Assert(Caused_Error, "Application_Name length > 128 characters");
Assert(Caused_Error and Register_Success = Invalid_FD, "Application_Name length > 128 characters");
end Test_Register_Application_Length;

--Test Case 007
procedure Test_Register_Application_Empty (Object : in out Test) is
App_Name : Bounded_String := To_Bounded_String ("");
Register_Success : File_Descriptor := Invalid_FD;
RINA_Dev_FD : File_Descriptor := RINA_Open;
Caused_Error : Boolean := False;
begin
Register_Success := RINA_Register (RINA_Dev_FD, App_Name, To_Bounded_String ("TestApplicationName"), 0);

Assert(Register_Success = Invalid_FD, "Application_Name blank");
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, "", 0);
exception
when Exceptions.Bounded_Length_Expcetion =>
Caused_Error := True;

Assert(Caused_Error and Register_Success = Invalid_FD, "Application_Name blank");
end Test_Register_Application_Empty;

-- Test Case 008
procedure Test_Register_App_Already_Reg (Object : in out Test) is
App_Name : Bounded_String := To_Bounded_String ("TestApplicationName");
RINA_Dev_FD : File_Descriptor := RINA_Open;
Register_First : File_Descriptor := RINA_Register (RINA_Dev_FD, App_Name, To_Bounded_String ("TestDIF"), 0);
Register_Second : File_Descriptor := RINA_Register (RINA_Dev_FD, App_Name, To_Bounded_String ("TestDIF"), 0);
Register_First : constant File_Descriptor := RINA_Register (RINA_Dev_FD, DIF_Name, Application_Name, 0);
Register_Second : File_Descriptor;
Caused_Error : Boolean := False;
begin
Register_Second := RINA_Register (RINA_Dev_FD, App_Name, To_Bounded_String ("TestDIF"), 0);
Register_Second := RINA_Register (RINA_Dev_FD, DIF_Name, Application_Name, 0);
exception
when EXCEPTIONS.DIF_REGISTRATION_FAILURE =>
Caused_Error := True;
Assert (Caused_Error, "Application name could be registered twice");
Assert (Caused_Error and Register_Second = Invalid_FD and Register_First /= Invalid_FD, "Application name could be registered twice");
end Test_Register_App_Already_Reg;

-- Test Case 009
procedure Test_Register_AppName_to_DIF (Object : in out Test) is
App_Name : Bounded_String := To_Bounded_String ("UniqueTestApp");
RINA_Dev_FD : File_Descriptor := RINA_Open;
Register_Success : File_Descriptor;
Caused_Error : Boolean := False;
begin
Register_Success := RINA_Register (RINA_Dev_FD, App_Name, To_Bounded_String ("TestDIF"), 0);
Register_Success := RINA_Register (RINA_Dev_FD, DIF_Name, Application_Name, 0);
exception
when EXCEPTIONS.DIF_REGISTRATION_FAILURE =>
Caused_Error := True;
Assert (Caused_Error, "Failed to register a unique application name");
Assert (Caused_Error and Register_Success = Invalid_FD, "Failed to register a unique application name");
end Test_Register_AppName_to_DIF;

-- Test Case 010
procedure Test_Register_Invalid_File_Descriptor (Object : in out Test) is
App_Name : Bounded_String := To_Bounded_String ("TestApplicationName");
Invalid_FD : File_Descriptor := -1; -- Assuming -1 is an invalid file descriptor
Register_Result : File_Descriptor := RINA_Register (Invalid_FD, App_Name, To_Bounded_String ("TestDIF"), 0);
Register_Result : File_Descriptor := Invalid_FD;
Caused_Error : Boolean := False;
begin
Assert (Register_Result = Invalid_FD, "rina_register did not return -1 for invalid file descriptor");
Register_Result := RINA_Register (Invalid_FD, DIF_Name, Application_Name, 0);
exception
when EXCEPTIONS.DIF_REGISTRATION_FAILURE =>
Caused_Error := True;

Assert (Caused_Error and Register_Result = Invalid_FD, "rina_register did not return -1 for invalid file descriptor");
end Test_Register_Invalid_File_Descriptor;

end Test_RINA_Register;

0 comments on commit e86234e

Please sign in to comment.