defer C.free(unsafe.Pointer(meid))
if state := C.rmrSend(r.rmrCtx, RIC_ALARM_UPDATE, datap, C.int(len(payload)), meid); state != C.RMR_OK {
- return errors.New(fmt.Sprintf("RmrError=rmrSend failed with error: %d", state))
+ return errors.New(fmt.Sprintf("RmrError=rmrSend via %s failed with error: %d", r.rmrEndpoint, state))
}
log.Printf("Alarm sent via rmr to %s", r.rmrEndpoint)
return nil
assert.Nil(t, err, "clear failed")
}
+func TestAlarmRaiseSuccessLong(t *testing.T) {
+ ainfo := ""
+ for i := 1; i <= 2024; i++ {
+ ainfo += "a"
+ }
+ a := alarmer.NewAlarm(1234, alarm.SeverityMajor, ainfo, "eth 0 1")
+ err := alarmer.Raise(a)
+ assert.Nil(t, err, "raise failed")
+}
+
+func TestAlarmClearSuccessLong(t *testing.T) {
+ ainfo := ""
+ for i := 1; i <= 2024; i++ {
+ ainfo += "a"
+ }
+ a := alarmer.NewAlarm(1234, alarm.SeverityMajor, ainfo, "eth 0 1")
+ err := alarmer.Clear(a)
+ assert.Nil(t, err, "clear failed")
+}
+
func TestAlarmReraiseSuccess(t *testing.T) {
a := alarmer.NewAlarm(1234, alarm.SeverityMajor, "Some App data", "eth 0 1")
int rmrSend(void *mrc, int mtype, void *payload, int payload_len, char *meid) {
int retry_count = 0;
- rmr_mbuf_t *sbuf = rmr_alloc_msg(mrc, 1024);
+ rmr_mbuf_t *sbuf = 0;
+
+ if (payload_len > 1024) {
+ sbuf = rmr_alloc_msg(mrc, payload_len);
+ } else {
+ sbuf = rmr_alloc_msg(mrc, 1024);
+ }
sbuf->mtype = mtype;
sbuf->sub_id = RMR_VOID_SUBID;