+
    Epjp"  c                      ^ RI t^ RIHu Ht ^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHt ]! ]4      P#                  4       P$                  ^,          tR tR t ! R R]P,                  4      t]R8X  d   ]P2                  ! 4        R# R# )    N)Pathc                 F   \         R ,          R,          V  R2,          p\        P                  P                  V \	        V4      4      p\        P
                  P                  W4      p\        P
                  P                  V4      pVP                  P                  V4       V# )netdatapluginsz.plugin)
ROOT	importlib	machinerySourceFileLoaderstrutilspec_from_loadermodule_from_specloaderexec_module)namepathr   specmodules   &    Q/home/user/Projects/overdeck/modules/monitor/agent-guard/tests/test_collectors.pyload_pluginr      sx    )i'TF'*::D  11$D	BF>>**48D^^,,T2FKKF#M    c                 b    V P                   P                  R R R7       V P                  V4       R# )T)parentsexist_okN)parentmkdir
write_text)r   texts   &&r   writer      s%    KKdT2OODr   c                   V   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )CollectorTestsc           	        \        R 4      p\        P                  ! 4       ;_uu_ 4       p\        V4      p\	        VR,          RP                  . RO4      4       \	        VR,          R,          R4       RR.pVP                  W4RR7      pV P                  VR,          R	4       V P                  VR
,          ^K4       V P                  VR,          R4       RRR4       R#   + '       g   i     R# ; i)mem_trajectorymeminfo
pressurememoryz^some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=3.50 avg60=0.00 avg300=0.00 total=0
     V@now
runway_pctg      2@eta_secondspsi_full_avg10g      @N)MemTotal:       1000000 kBzMemAvailable:    180000 kBSwapTotal:      1000000 kBzSwapFree:        180000 kB)        i'	 )      N@i@~ )r   tempfileTemporaryDirectoryr   r   joincollectassertEqual)selfmodtdprochistorymetricss   &     r   2test_mem_trajectory_eta_uses_recent_falling_runwayACollectorTests.test_mem_trajectory_eta_uses_recent_falling_runway   s    *+((**b8D$"DII / %  $#h.  1S  T$n5Gkk$Tk:GW\2D9W]3R8W%56< +***s   B,CC0	c           
     J   \        R 4      p\        P                  ! 4       ;_uu_ 4       p\        V4      p\	        VR,          RP                  . RO4      4       R	R
.pV P                  VP                  W4RR7      R,          R4       RRR4       R#   + '       g   i     R# ; i)r"   r#   r$   r'   r(   r+   i?B N)r-   zMemAvailable:    500000 kBr.   zSwapFree:        500000 kB)r/   @B )r0   r?   )r   r1   r2   r   r   r3   r5   r4   )r6   r7   r8   r9   r:   s   &    r   .test_mem_trajectory_plateau_emits_eta_sentinel=CollectorTests.test_mem_trajectory_plateau_emits_eta_sentinel.   s    *+((**b8D$"DII / %  &7GS[[D[A-PRXY +***s   ABB"	c                   \        R 4      p\        P                  ! 4       ;_uu_ 4       p\        V4      R,          pVP	                  4        VR,          pVP                  R
R,          4       \        P                  ! 4       R,
          p\        P                  ! WEV34       VR,          pVP                  R4       VP                  V^H\        P                  ! 4       R7      pV P                  VR,          ^4       V P                  VR,          ^ 4       V P                  VR,          ^ 4       R	R	R	4       R	#   + '       g   i     R	# ; i)tmpfs_guardtmpzold.bini   z	fresh.bin)stale_hoursuidstale_junk_mbused_pct
inodes_pctNs   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi e s   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r   r1   r2   r   r   write_bytestimeosutimer4   getuidassertGreaterEqual)r6   r7   r8   rD   staleoldfreshr;   s   &       r   9test_tmpfs_guard_counts_used_inodes_and_stale_owned_filesHCollectorTests.test_tmpfs_guard_counts_used_inodes_and_stale_owned_files;   s    -(((**br(U"CIIK)OEkD01))+	)CHHU#J'+%Ej)kk#2299;kGG##GO$<a@##GJ$7;##GL$91= +***s   DD77E	c           
     h   \        R 4      p\        P                  ! 4       ;_uu_ 4       p\        V4      p\	        VR,          R4       R F  w  rErgpV\        V4      ,          p	R.R.^2,          ,           p
\        V4      V
^&   RV
^&   \	        V	R,          V RV R2R	P                  V
4      ,           R
,           4       \	        V	R,          VP                  R	R4      R,           4       \	        V	R,          VR
,           4       V	R,          pVP                  RV 24       K  	  RRRR^dR^d//pVP                  W<RR.R7      w  rV P                  VR,          ^ 4       V P                  VR,          ^ 4       V P                  VR,          VR,          4       RRR4       R#   + '       g   i     R# ; i)cpu_runawaystatzcpu  1000 0 0 1000 0 0 0 0 0 0
gccpython3S0z (z)  r$   cmdline cgroupexez	/usr/bin/total  groups      $@)intervalbuild_allowlistbuild_busy_pctnonbuild_busy_pctN))e   rX   zgcc -c file.cz0::/user.slice/builds.slice/xi  )   rY   zpython3 loop.pyz0::/user.slice/app.slice/yiX  )r   r1   r2   r   r   r
   r3   replace
symlink_tor4   assertGreater)r6   r7   r8   r9   pidr`   cmdr_   tickspfieldsexe_pathpreviousr;   _states   &              r   >test_cpu_runaway_excludes_build_groups_and_counts_nonbuild_hogMCollectorTests.test_cpu_runaway_excludes_build_groups_and_counts_nonbuild_hogK   s   -(((**b8D$-!CD1,#u 3s8O#+ Zr
 r
a&jSEC5"3chhv6F"F"MNa)mS[[d%;d%BCa(lFTM2u9##iu$561  x%i1MNH!kk$4Z_Y`kaOGw'78!<w':;Q?w':;WEU=VW) +***s   E-F  F1	c                x   \        R 4      p\        P                  ! 4       ;_uu_ 4       p\        V4      p\	        VR,          R,          R,          R4       \	        VR,          R,          R,          R,          R4       \	        VR,          R	,          R
,          R4       \	        VR,          R	,          R
,          R4       VP                  V^2R7      pV P                  VR,          R4       V P                  VR,          ^4       V P                  VR,          R4       RRR4       R#   + '       g   i     R# ; i)proc_fdsysfszfile-nrz	80	0	100
inotifymax_user_watchesz200
1fdr[    2)inotify_watchesopen_fds_pct      T@
proc_countinotify_watch_pct      9@N)r   r1   r2   r   r   r4   r5   )r6   r7   r8   r9   r;   s   &    r   6test_proc_fd_reports_file_process_and_inotify_pressureECollectorTests.test_proc_fd_reports_file_process_and_inotify_pressurec   s    )$((**b8D$,%	1>B$,%	14FFP$*t#c)2.$*t#c)2.kk$k;GW^4d;W\2A6W%894@ +***s   C5D((D9	c                :  a \        R 4      p ! R R4      oVP                  \        R4      V3R lR7      pV P                  VR,          R4       V P                  VR,          R	4       V P                  VR
,          R	4       V P                  VR,          R4       R# )
disk_guardc                   .    ] tR t^st^dt^t^
tRtRtRt	Rt
R# )VCollectorTests.test_disk_guard_reports_block_inode_and_reserved_capacity.<locals>.Statrb   i   Ni   @)__name__
__module____qualname____firstlineno__f_blocksf_bfreef_bavailf_frsizef_filesf_ffree__static_attributes__r   r   r   Statr   s   s     HGHHGGr   r   /c                    < S! 4       # )Nr   )_pathr   s   &r   <lambda>ZCollectorTests.test_disk_guard_reports_block_inode_and_reserved_capacity.<locals>.<lambda>{   s    tvr   )statvfsrH   r   	avail_gibrd   reserved_gibrI   r   N)r   r4   r   r5   )r6   r7   r;   r   s   &  @r   9test_disk_guard_reports_block_inode_and_reserved_capacityHCollectorTests.test_disk_guard_reports_block_inode_and_reserved_capacityp   s    ,'	 	 ++d3i1E+F,d3-t40$7.5r   c                   \         P                  ! 4       ;_uu_ 4       p\        V4      p\        VR ,          R4       \        VR,          R4       VP	                  4        F  pVP                  R4       K  	  VR,          p\        P                  RV R\        P                  R,           2R\        V4      R	R
RR/,          p\        P                  ! \        \        R,          R,          R,          4      R.VRRRR7      pV P                  VP                  ^K4       V P                  RVP                  4       V P!                  VP#                  4       4       RRR4       R#   + '       g   i     R# ; i)df|#!/bin/sh
printf 'Filesystem 1024-blocks Used Available Capacity Mounted on\n/dev/test 104857600 99614720 5242880 95%% /\n'
systemd-run'#!/bin/sh
printf called > "$SM_CALLED"
  calledPATH:	SM_CALLEDSM_DISK_MIN_FREE_GIB10SM_DISK_MAX_USED_PCT85slicesbin	run-buildtrueTFenvr   capture_outputcheckzdisk admission rejectedN)r1   r2   r   r   iterdirchmodrL   environr
   
subprocessrunr   r5   
returncodeassertInstderrassertFalseexists)r6   r8   bin_dirr   r   r   r9   s   &      r   2test_run_build_rejects_low_disk_before_systemd_runACollectorTests.test_run_build_rejects_low_disk_before_systemd_run   s-   ((**b2hG$ S 'M)+XY)

5! *x'F**7)1RZZ%7$89S[&&	  C >>TH_u,{:;VD#D T__b1MM3T[[AV]]_-3 +***s   D;E##E4	c                   \         P                  ! 4       ;_uu_ 4       p\        V4      p\        VR ,          R4       \        VR,          R4       VP	                  4        F  pVP                  R4       K  	  VR,          p\        P                  ! \        \        R,          R,          R,          4      R	.\        P                  R
V R\        P                  R
,           2R\        V4      /,          RRRR7      pV P                  VP                  ^K4       V P                  RVP                  4       V P!                  VP#                  4       4       RRR4       R#   + '       g   i     R# ; i)r   z#!/bin/sh
exit 1
r   r   r   r   r   r   r   r   r   r   r   TFr   zdisk probe failedN)r1   r2   r   r   r   r   r   r   r
   r   rL   r   r5   r   r   r   r   r   )r6   r8   r   r   r   r9   s   &     r   ,test_run_build_rejects_when_disk_probe_fails;CollectorTests.test_run_build_rejects_when_disk_probe_fails   s   ((**b2hG'D."78'M)+XY)

5! *x'F>>TH_u,{:;VDJJgYa

6(:';<k3v;WX#D T__b1MM-t{{;V]]_-# +***s   D5EE.	c                V   \         P                  ! 4       ;_uu_ 4       p\        V4      pVR ,          pVP                  4        \	        VR,          R4       \	        VR,          R4       \	        VR,          R4       VP                  4        F  pVP                  R4       K  	  VR,          p\        P                  R	V R
\        P                  R	,           2R\        VR,          4      R\        V4      /,          p\        \        R,          R ,          R,          4      .p\        P                  ! WvRRRR7       \        P                  ! WvRRRR7       V P                  \        VP                  4       P!                  4       4      ^4       RRR4       R#   + '       g   i     R# ; i)r   r   r   znotify-sendz1#!/bin/sh
printf '%s\n' "$*" >> "$SM_NOTIFY_LOG"
loggerz#!/bin/sh
exit 0
r   notificationsr   r   XDG_STATE_HOMEstateSM_NOTIFY_LOGr   z
disk-checkT)r   r   r   r   N)r1   r2   r   r   r   r   r   rL   r   r
   r   r   r   r5   len	read_text
splitlines)r6   r8   rootr   r   
notify_logr   commands   &       r   5test_disk_check_notifies_once_while_tier_is_unchangedDCollectorTests.test_disk_check_notifies_once_while_tier_is_unchanged   sI   ((**b8DUlGMMO$ S 'M)+ef'H$&;<)

5! */J**7)1RZZ%7$89 #dWn"5Z  C
 4(?U2\ABCGNN74SWXNN74SWXS!5!5!7!B!B!DEqI+ +***s   E/FF(	r   N)r   r   r   r   r<   r@   rS   rv   r   r   r   r   r   r   __classdictcell__)__classdict__s   @r   r    r       s<     ="Z> X0A6".8.(J Jr   r    __main__)builtins@py_builtins_pytest.assertion.rewrite	assertionrewrite
@pytest_arimportlib.utilr   importlib.machineryrL   r   r1   rK   unittestpathlibr   __file__resolver   r   r   r   TestCaser    r   mainr   r   r   <module>r      sz         	      H~''*
kJX&& kJ\ zMMO r   