root/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. op_is_not_probe_test
  2. op_does_not_have_right_values_test
  3. check_values_test

   1 /*
   2  * Copyright 2021-2024 the Pacemaker project contributors
   3  *
   4  * The version control history for this file may have further details.
   5  *
   6  * This source code is licensed under the GNU General Public License version 2
   7  * or later (GPLv2+) WITHOUT ANY WARRANTY.
   8  */
   9 
  10 #include <crm_internal.h>
  11 
  12 #include <crm/common/probes.h>
  13 #include <crm/common/unittest_internal.h>
  14 
  15 static void
  16 op_is_not_probe_test(void **state) {
     /* [previous][next][first][last][top][bottom][index][help] */
  17     xmlNode *node = NULL;
  18 
  19     /* Not worth testing this thoroughly since it's just a duplicate of whether
  20      * pcmk_op_is_probe works or not.
  21      */
  22 
  23     node = pcmk__xml_parse("<" PCMK__XE_LRM_RSC_OP " "
  24                                   PCMK_XA_OPERATION
  25                                       "=\"" PCMK_ACTION_START "\" "
  26                                   PCMK_META_INTERVAL "=\"0\"/>");
  27     assert_false(pcmk_xe_mask_probe_failure(node));
  28     pcmk__xml_free(node);
  29 }
  30 
  31 static void
  32 op_does_not_have_right_values_test(void **state) {
     /* [previous][next][first][last][top][bottom][index][help] */
  33     xmlNode *node = NULL;
  34     char *s = NULL;
  35 
  36     node = pcmk__xml_parse("<" PCMK__XE_LRM_RSC_OP " "
  37                                   PCMK_XA_OPERATION
  38                                       "=\"" PCMK_ACTION_MONITOR "\" "
  39                                   PCMK_META_INTERVAL "=\"0\"/>");
  40     assert_false(pcmk_xe_mask_probe_failure(node));
  41     pcmk__xml_free(node);
  42 
  43     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
  44                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
  45                               PCMK_META_INTERVAL "=\"0\" "
  46                               PCMK__XA_RC_CODE "=\"%d\" "
  47                               PCMK__XA_OP_STATUS "=\"\"/>",
  48                           PCMK_OCF_OK);
  49     node = pcmk__xml_parse(s);
  50     assert_false(pcmk_xe_mask_probe_failure(node));
  51     free(s);
  52     pcmk__xml_free(node);
  53 }
  54 
  55 static void
  56 check_values_test(void **state) {
     /* [previous][next][first][last][top][bottom][index][help] */
  57     xmlNode *node = NULL;
  58     char *s = NULL;
  59 
  60     /* PCMK_EXEC_NOT_SUPPORTED */
  61     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
  62                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
  63                               PCMK_META_INTERVAL "=\"0\" "
  64                               PCMK__XA_RC_CODE "=\"%d\" "
  65                               PCMK__XA_OP_STATUS "=\"%d\"/>",
  66                           PCMK_OCF_OK, PCMK_EXEC_NOT_SUPPORTED);
  67     node = pcmk__xml_parse(s);
  68     assert_false(pcmk_xe_mask_probe_failure(node));
  69     free(s);
  70     pcmk__xml_free(node);
  71 
  72     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
  73                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
  74                               PCMK_META_INTERVAL "=\"0\" "
  75                               PCMK__XA_RC_CODE "=\"%d\" "
  76                               PCMK__XA_OP_STATUS "=\"%d\"/>",
  77                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_NOT_SUPPORTED);
  78     node = pcmk__xml_parse(s);
  79     assert_true(pcmk_xe_mask_probe_failure(node));
  80     free(s);
  81     pcmk__xml_free(node);
  82 
  83     /* PCMK_EXEC_DONE */
  84     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
  85                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
  86                               PCMK_META_INTERVAL "=\"0\" "
  87                               PCMK__XA_RC_CODE "=\"%d\" "
  88                               PCMK__XA_OP_STATUS "=\"%d\"/>",
  89                           PCMK_OCF_OK, PCMK_EXEC_DONE);
  90     node = pcmk__xml_parse(s);
  91     assert_false(pcmk_xe_mask_probe_failure(node));
  92     free(s);
  93     pcmk__xml_free(node);
  94 
  95     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
  96                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
  97                               PCMK_META_INTERVAL "=\"0\" "
  98                               PCMK__XA_RC_CODE "=\"%d\" "
  99                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 100                           PCMK_OCF_INVALID_PARAM, PCMK_EXEC_DONE);
 101     node = pcmk__xml_parse(s);
 102     assert_true(pcmk_xe_mask_probe_failure(node));
 103     free(s);
 104     pcmk__xml_free(node);
 105 
 106     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 107                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 108                               PCMK_META_INTERVAL "=\"0\" "
 109                               PCMK__XA_RC_CODE "=\"%d\" "
 110                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 111                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_DONE);
 112     node = pcmk__xml_parse(s);
 113     assert_true(pcmk_xe_mask_probe_failure(node));
 114     free(s);
 115     pcmk__xml_free(node);
 116 
 117     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 118                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 119                               PCMK_META_INTERVAL "=\"0\" "
 120                               PCMK__XA_RC_CODE "=\"%d\" "
 121                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 122                           PCMK_OCF_NOT_CONFIGURED, PCMK_EXEC_DONE);
 123     node = pcmk__xml_parse(s);
 124     assert_false(pcmk_xe_mask_probe_failure(node));
 125     free(s);
 126     pcmk__xml_free(node);
 127 
 128     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 129                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 130                               PCMK_META_INTERVAL "=\"0\" "
 131                               PCMK__XA_RC_CODE "=\"%d\" "
 132                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 133                           PCMK_OCF_NOT_RUNNING, PCMK_EXEC_DONE);
 134     node = pcmk__xml_parse(s);
 135     assert_false(pcmk_xe_mask_probe_failure(node));
 136     free(s);
 137     pcmk__xml_free(node);
 138 
 139     /* PCMK_EXEC_NOT_INSTALLED */
 140     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 141                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 142                               PCMK_META_INTERVAL "=\"0\" "
 143                               PCMK__XA_RC_CODE "=\"%d\" "
 144                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 145                           PCMK_OCF_OK, PCMK_EXEC_NOT_INSTALLED);
 146     node = pcmk__xml_parse(s);
 147     assert_true(pcmk_xe_mask_probe_failure(node));
 148     free(s);
 149     pcmk__xml_free(node);
 150 
 151     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 152                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 153                               PCMK_META_INTERVAL "=\"0\" "
 154                               PCMK__XA_RC_CODE "=\"%d\" "
 155                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 156                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_NOT_INSTALLED);
 157     node = pcmk__xml_parse(s);
 158     assert_true(pcmk_xe_mask_probe_failure(node));
 159     free(s);
 160     pcmk__xml_free(node);
 161 
 162     /* PCMK_EXEC_ERROR */
 163     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 164                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 165                               PCMK_META_INTERVAL "=\"0\" "
 166                               PCMK__XA_RC_CODE "=\"%d\" "
 167                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 168                           PCMK_OCF_OK, PCMK_EXEC_ERROR);
 169     node = pcmk__xml_parse(s);
 170     assert_false(pcmk_xe_mask_probe_failure(node));
 171     free(s);
 172     pcmk__xml_free(node);
 173 
 174     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 175                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 176                               PCMK_META_INTERVAL "=\"0\" "
 177                               PCMK__XA_RC_CODE "=\"%d\" "
 178                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 179                           PCMK_OCF_INVALID_PARAM, PCMK_EXEC_ERROR);
 180     node = pcmk__xml_parse(s);
 181     assert_true(pcmk_xe_mask_probe_failure(node));
 182     free(s);
 183     pcmk__xml_free(node);
 184 
 185     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 186                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 187                               PCMK_META_INTERVAL "=\"0\" "
 188                               PCMK__XA_RC_CODE "=\"%d\" "
 189                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 190                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_ERROR);
 191     node = pcmk__xml_parse(s);
 192     assert_true(pcmk_xe_mask_probe_failure(node));
 193     free(s);
 194     pcmk__xml_free(node);
 195 
 196     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 197                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 198                               PCMK_META_INTERVAL "=\"0\" "
 199                               PCMK__XA_RC_CODE "=\"%d\" "
 200                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 201                           PCMK_OCF_NOT_CONFIGURED, PCMK_EXEC_ERROR);
 202     node = pcmk__xml_parse(s);
 203     assert_false(pcmk_xe_mask_probe_failure(node));
 204     free(s);
 205     pcmk__xml_free(node);
 206 
 207     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 208                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 209                               PCMK_META_INTERVAL "=\"0\" "
 210                               PCMK__XA_RC_CODE "=\"%d\" "
 211                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 212                           PCMK_OCF_NOT_RUNNING, PCMK_EXEC_ERROR);
 213     node = pcmk__xml_parse(s);
 214     assert_false(pcmk_xe_mask_probe_failure(node));
 215     free(s);
 216     pcmk__xml_free(node);
 217 
 218     /* PCMK_EXEC_ERROR_HARD */
 219     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 220                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 221                               PCMK_META_INTERVAL "=\"0\" "
 222                               PCMK__XA_RC_CODE "=\"%d\" "
 223                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 224                           PCMK_OCF_OK, PCMK_EXEC_ERROR_HARD);
 225     node = pcmk__xml_parse(s);
 226     assert_false(pcmk_xe_mask_probe_failure(node));
 227     free(s);
 228     pcmk__xml_free(node);
 229 
 230     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 231                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 232                               PCMK_META_INTERVAL "=\"0\" "
 233                               PCMK__XA_RC_CODE "=\"%d\" "
 234                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 235                           PCMK_OCF_INVALID_PARAM, PCMK_EXEC_ERROR_HARD);
 236     node = pcmk__xml_parse(s);
 237     assert_true(pcmk_xe_mask_probe_failure(node));
 238     free(s);
 239     pcmk__xml_free(node);
 240 
 241     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 242                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 243                               PCMK_META_INTERVAL "=\"0\" "
 244                               PCMK__XA_RC_CODE "=\"%d\" "
 245                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 246                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_ERROR_HARD);
 247     node = pcmk__xml_parse(s);
 248     assert_true(pcmk_xe_mask_probe_failure(node));
 249     free(s);
 250     pcmk__xml_free(node);
 251 
 252     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 253                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 254                               PCMK_META_INTERVAL "=\"0\" "
 255                               PCMK__XA_RC_CODE "=\"%d\" "
 256                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 257                           PCMK_OCF_NOT_CONFIGURED, PCMK_EXEC_ERROR_HARD);
 258     node = pcmk__xml_parse(s);
 259     assert_false(pcmk_xe_mask_probe_failure(node));
 260     free(s);
 261     pcmk__xml_free(node);
 262 
 263     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 264                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 265                               PCMK_META_INTERVAL "=\"0\" "
 266                               PCMK__XA_RC_CODE "=\"%d\" "
 267                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 268                           PCMK_OCF_NOT_RUNNING, PCMK_EXEC_ERROR_HARD);
 269     node = pcmk__xml_parse(s);
 270     assert_false(pcmk_xe_mask_probe_failure(node));
 271     free(s);
 272     pcmk__xml_free(node);
 273 
 274     /* PCMK_EXEC_ERROR_FATAL */
 275     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 276                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 277                               PCMK_META_INTERVAL "=\"0\" "
 278                               PCMK__XA_RC_CODE "=\"%d\" "
 279                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 280                           PCMK_OCF_OK, PCMK_EXEC_ERROR_FATAL);
 281     node = pcmk__xml_parse(s);
 282     assert_false(pcmk_xe_mask_probe_failure(node));
 283     free(s);
 284     pcmk__xml_free(node);
 285 
 286     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 287                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 288                               PCMK_META_INTERVAL "=\"0\" "
 289                               PCMK__XA_RC_CODE "=\"%d\" "
 290                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 291                           PCMK_OCF_INVALID_PARAM, PCMK_EXEC_ERROR_FATAL);
 292     node = pcmk__xml_parse(s);
 293     assert_true(pcmk_xe_mask_probe_failure(node));
 294     free(s);
 295     pcmk__xml_free(node);
 296 
 297     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 298                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 299                               PCMK_META_INTERVAL "=\"0\" "
 300                               PCMK__XA_RC_CODE "=\"%d\" "
 301                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 302                           PCMK_OCF_NOT_INSTALLED, PCMK_EXEC_ERROR_FATAL);
 303     node = pcmk__xml_parse(s);
 304     assert_true(pcmk_xe_mask_probe_failure(node));
 305     free(s);
 306     pcmk__xml_free(node);
 307 
 308     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 309                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 310                               PCMK_META_INTERVAL "=\"0\" "
 311                               PCMK__XA_RC_CODE "=\"%d\" "
 312                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 313                           PCMK_OCF_NOT_CONFIGURED, PCMK_EXEC_ERROR_FATAL);
 314     node = pcmk__xml_parse(s);
 315     assert_false(pcmk_xe_mask_probe_failure(node));
 316     free(s);
 317     pcmk__xml_free(node);
 318 
 319     s = crm_strdup_printf("<" PCMK__XE_LRM_RSC_OP " "
 320                               PCMK_XA_OPERATION "=\"" PCMK_ACTION_MONITOR "\" "
 321                               PCMK_META_INTERVAL "=\"0\" "
 322                               PCMK__XA_RC_CODE "=\"%d\" "
 323                               PCMK__XA_OP_STATUS "=\"%d\"/>",
 324                           PCMK_OCF_NOT_RUNNING, PCMK_EXEC_ERROR_FATAL);
 325     node = pcmk__xml_parse(s);
 326     assert_false(pcmk_xe_mask_probe_failure(node));
 327     free(s);
 328     pcmk__xml_free(node);
 329 }
 330 
 331 PCMK__UNIT_TEST(pcmk__xml_test_setup_group, pcmk__xml_test_teardown_group,
 332                 cmocka_unit_test(op_is_not_probe_test),
 333                 cmocka_unit_test(op_does_not_have_right_values_test),
 334                 cmocka_unit_test(check_values_test))

/* [previous][next][first][last][top][bottom][index][help] */