|
@@ -20,11 +20,46 @@ var (
|
|
|
// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
|
|
// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
|
|
|
//
|
|
//
|
|
|
// (isCond bool, msgFormat defs.Str, args ...any)
|
|
// (isCond bool, msgFormat defs.Str, args ...any)
|
|
|
-type FnAssert func(isCond bool, msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
|
|
+// type FnAssert func(isCond bool, msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
|
|
|
// Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
|
|
// Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
|
|
|
-func Assert(isCond bool, msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
- if isCond {
|
|
|
|
|
|
|
+// func Assert(isCond bool, msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
+// if isCond {
|
|
|
|
|
+// return
|
|
|
|
|
+// }
|
|
|
|
|
+// msg := def_spec.Sprintf("SOFT ASSERT "+msgFormat+"\n", args...)
|
|
|
|
|
+// if IsStageLocal {
|
|
|
|
|
+// panic(msg)
|
|
|
|
|
+// }
|
|
|
|
|
+// log.Print(msg)
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// IAssertAction -- действие, которое будет выполнено при проверке.
|
|
|
|
|
+type IAssertAction interface {
|
|
|
|
|
+ // Assert -- жёсткое падение кроме прода
|
|
|
|
|
+ Assert(msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
+ // Hassert -- нжёсткое падение даже на проде
|
|
|
|
|
+ Hassert(msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+type IfAction func(msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
+
|
|
|
|
|
+type AssertAction struct {
|
|
|
|
|
+ isCond def_spec.Bool
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Hassert -- проверка на правильность утверждения с безусловным падением в панику даже на проде (hard assert).
|
|
|
|
|
+func (sf *AssertAction) Hassert(msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
+ if sf.isCond {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ msg := def_spec.Sprintf("HARD ASSERT "+msgFormat+"\n", args...)
|
|
|
|
|
+ panic(msg)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Assert -- проверка на правильность утверждения с падением в панику кроме прода (soft assert).
|
|
|
|
|
+func (sf *AssertAction) Assert(msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
+ if sf.isCond {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
msg := def_spec.Sprintf("SOFT ASSERT "+msgFormat+"\n", args...)
|
|
msg := def_spec.Sprintf("SOFT ASSERT "+msgFormat+"\n", args...)
|
|
@@ -34,31 +69,37 @@ func Assert(isCond bool, msgFormat def_spec.ATxt, args ...any) {
|
|
|
log.Print(msg)
|
|
log.Print(msg)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+type FnIf func(isCond def_spec.Bool)IAssertAction
|
|
|
|
|
+
|
|
|
|
|
+// If -- условие для проверки.
|
|
|
|
|
+func If(isCond def_spec.Bool) IAssertAction {
|
|
|
|
|
+ sf := &AssertAction{
|
|
|
|
|
+ isCond: isCond,
|
|
|
|
|
+ }
|
|
|
|
|
+ return sf
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// FnHassert -- проверяет с жёстким падением условие.
|
|
// FnHassert -- проверяет с жёстким падением условие.
|
|
|
//
|
|
//
|
|
|
// (isCond bool, msgFormat defs.Str, args ...any)
|
|
// (isCond bool, msgFormat defs.Str, args ...any)
|
|
|
-type FnHassert func(isCond def_spec.Bool, msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
|
|
+// type FnHassert func(isCond def_spec.Bool, msgFormat def_spec.ATxt, args ...any)
|
|
|
|
|
|
|
|
// Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
|
|
// Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
|
|
|
-func Hassert(isCond def_spec.Bool, msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
- if isCond {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- msg := def_spec.Sprintf("HARD ASSERT "+msgFormat+"\n", args...)
|
|
|
|
|
- panic(msg)
|
|
|
|
|
-}
|
|
|
|
|
|
|
+// func Hassert(isCond def_spec.Bool, msgFormat def_spec.ATxt, args ...any) {
|
|
|
|
|
+// if isCond {
|
|
|
|
|
+// return
|
|
|
|
|
+// }
|
|
|
|
|
+// msg := def_spec.Sprintf("HARD ASSERT "+msgFormat+"\n", args...)
|
|
|
|
|
+// panic(msg)
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
// TimeNow -- возвращает локальное Unix сейчас-время (мсек, не зависит от положения).
|
|
// TimeNow -- возвращает локальное Unix сейчас-время (мсек, не зависит от положения).
|
|
|
-//
|
|
|
|
|
-
|
|
|
|
|
func TimeNow() int64 {
|
|
func TimeNow() int64 {
|
|
|
timeNow := time.Now().Local().UnixMilli()
|
|
timeNow := time.Now().Local().UnixMilli()
|
|
|
return timeNow
|
|
return timeNow
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// SleepMs -- спит миллисекунду (иногда бывает полезно).
|
|
// SleepMs -- спит миллисекунду (иногда бывает полезно).
|
|
|
-//
|
|
|
|
|
-
|
|
|
|
|
func SleepMs() {
|
|
func SleepMs() {
|
|
|
time.Sleep(time.Millisecond * 1)
|
|
time.Sleep(time.Millisecond * 1)
|
|
|
}
|
|
}
|