]> git.proxmox.com Git - mirror_frr.git/blobdiff - pceplib/test/pcep_msg_tools_test.c
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / pceplib / test / pcep_msg_tools_test.c
index e25ddb21799a089a49c812451badfa1bff7a7bff..858650ec8f2dc15a48d6c402e025437675d995bc 100644 (file)
@@ -1,21 +1,9 @@
+// SPDX-License-Identifier: LGPL-2.1-or-later
 /*
  * This file is part of the PCEPlib, a PCEP protocol library.
  *
  * Copyright (C) 2020 Volta Networks https://voltanet.io/
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
  * Author : Brady Johnson <brady@voltanet.io>
  *
  */
@@ -35,6 +23,8 @@
 
 #include <CUnit/CUnit.h>
 
+#include <zebra.h>
+
 #include "pcep_msg_encoding.h"
 #include "pcep_msg_messages.h"
 #include "pcep_msg_tools.h"
@@ -143,7 +133,7 @@ const char *pcep_initiate_cisco_pcc_hexbyte_strs[] = {
 struct pcep_message *create_message(uint8_t msg_type, uint8_t obj1_class,
                                    uint8_t obj2_class, uint8_t obj3_class,
                                    uint8_t obj4_class);
-int convert_hexstrs_to_binary(const char *hexbyte_strs[],
+int convert_hexstrs_to_binary(char *filename, const char *hexbyte_strs[],
                              uint16_t hexbyte_strs_length);
 
 int pcep_tools_test_suite_setup(void)
@@ -167,18 +157,23 @@ void pcep_tools_test_teardown(void)
 {
 }
 
+static const char BASE_TMPFILE[] = "/tmp/pceplib_XXXXXX";
+static int BASE_TMPFILE_SIZE = sizeof(BASE_TMPFILE);
+
 /* Reads an array of hexbyte strs, and writes them to a temporary file.
  * The caller should close the returned file. */
-int convert_hexstrs_to_binary(const char *hexbyte_strs[],
+int convert_hexstrs_to_binary(char *filename, const char *hexbyte_strs[],
                              uint16_t hexbyte_strs_length)
 {
        mode_t oldumask;
-       oldumask = umask(S_IXUSR|S_IXGRP|S_IWOTH|S_IROTH|S_IXOTH);
+       oldumask = umask(S_IXUSR | S_IXGRP | S_IWOTH | S_IROTH | S_IXOTH);
        /* Set umask before anything for security */
        umask(0027);
-       char tmpfile[] = "/tmp/pceplib_XXXXXX";
-       int fd = mkstemp(tmpfile);
+
+       strlcpy(filename, BASE_TMPFILE, BASE_TMPFILE_SIZE);
+       int fd = mkstemp(filename);
        umask(oldumask);
+
        if (fd == -1)
                return -1;
 
@@ -206,10 +201,12 @@ static bool pcep_obj_has_tlv(struct pcep_object_header *obj_hdr)
 
 void test_pcep_msg_read_pcep_initiate()
 {
-       int fd = convert_hexstrs_to_binary(pcep_initiate_hexbyte_strs,
+       char filename[BASE_TMPFILE_SIZE];
+
+       int fd = convert_hexstrs_to_binary(filename, pcep_initiate_hexbyte_strs,
                                           pcep_initiate_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -302,15 +299,19 @@ void test_pcep_msg_read_pcep_initiate()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 
 void test_pcep_msg_read_pcep_initiate2()
 {
-       int fd = convert_hexstrs_to_binary(pcep_initiate2_hexbyte_strs,
-                                          pcep_initiate2_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       char filename[BASE_TMPFILE_SIZE];
+
+       int fd =
+               convert_hexstrs_to_binary(filename, pcep_initiate2_hexbyte_strs,
+                                         pcep_initiate2_hexbyte_strs_length);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -392,14 +393,17 @@ void test_pcep_msg_read_pcep_initiate2()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_open()
 {
-       int fd = convert_hexstrs_to_binary(pcep_open_odl_hexbyte_strs,
+       char filename[BASE_TMPFILE_SIZE];
+
+       int fd = convert_hexstrs_to_binary(filename, pcep_open_odl_hexbyte_strs,
                                           pcep_open_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -437,14 +441,17 @@ void test_pcep_msg_read_pcep_open()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_update()
 {
-       int fd = convert_hexstrs_to_binary(pcep_update_hexbyte_strs,
+       char filename[BASE_TMPFILE_SIZE];
+
+       int fd = convert_hexstrs_to_binary(filename, pcep_update_hexbyte_strs,
                                           pcep_update_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -520,15 +527,18 @@ void test_pcep_msg_read_pcep_update()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_open_initiate()
 {
+       char filename[BASE_TMPFILE_SIZE];
+
        int fd = convert_hexstrs_to_binary(
-               pcep_open_initiate_odl_hexbyte_strs,
+               filename, pcep_open_initiate_odl_hexbyte_strs,
                pcep_open_initiate_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -550,15 +560,18 @@ void test_pcep_msg_read_pcep_open_initiate()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_open_cisco_pce()
 {
+       char filename[BASE_TMPFILE_SIZE];
+
        int fd = convert_hexstrs_to_binary(
-               pcep_open_cisco_pce_hexbyte_strs,
+               filename, pcep_open_cisco_pce_hexbyte_strs,
                pcep_open_cisco_pce_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -614,15 +627,18 @@ void test_pcep_msg_read_pcep_open_cisco_pce()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_update_cisco_pce()
 {
+       char filename[BASE_TMPFILE_SIZE];
+
        int fd = convert_hexstrs_to_binary(
-               pcep_update_cisco_pce_hexbyte_strs,
+               filename, pcep_update_cisco_pce_hexbyte_strs,
                pcep_update_cisco_pce_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -759,15 +775,18 @@ void test_pcep_msg_read_pcep_update_cisco_pce()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_report_cisco_pcc()
 {
+       char filename[BASE_TMPFILE_SIZE];
+
        int fd = convert_hexstrs_to_binary(
-               pcep_report_cisco_pcc_hexbyte_strs,
+               filename, pcep_report_cisco_pcc_hexbyte_strs,
                pcep_report_cisco_pcc_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -921,15 +940,18 @@ void test_pcep_msg_read_pcep_report_cisco_pcc()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_pcep_msg_read_pcep_initiate_cisco_pcc()
 {
+       char filename[BASE_TMPFILE_SIZE];
+
        int fd = convert_hexstrs_to_binary(
-               pcep_initiate_cisco_pcc_hexbyte_strs,
+               filename, pcep_initiate_cisco_pcc_hexbyte_strs,
                pcep_initiate_cisco_pcc_hexbyte_strs_length);
-       if(fd == -1){
-               CU_ASSERT_TRUE(fd>=0);
+       if (fd == -1) {
+               CU_ASSERT_TRUE(fd >= 0);
                return;
        }
        double_linked_list *msg_list = pcep_msg_read(fd);
@@ -1030,6 +1052,7 @@ void test_pcep_msg_read_pcep_initiate_cisco_pcc()
 
        pcep_msg_free_message_list(msg_list);
        close(fd);
+       unlink(filename);
 }
 
 void test_validate_message_header()