This helper is replicated in a few different places, let's pull it out.
from bcc import BPF
import ctypes as ct
from unittest import main, skipUnless, TestCase
+from utils import kernel_version_ge
import os
import sys
import socket
import struct
from contextlib import contextmanager
-import distutils.version
@contextmanager
def redirect_stderr(to):
sys.stderr.flush()
os.dup2(copied.fileno(), stderr_fd)
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
class TestClang(TestCase):
def test_complex(self):
b = BPF(src_file="test_clang_complex.c", debug=0)
from bcc import BPF
from unittest import main, skipUnless, TestCase
from subprocess import Popen, PIPE
-import distutils.version
+from utils import kernel_version_ge
import os
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
class TestFreeLLVMMemory(TestCase):
def getRssFile(self):
p = Popen(["cat", "/proc/" + str(os.getpid()) + "/status"],
# Licensed under the Apache License, Version 2.0 (the "License")
import ctypes as ct
-import distutils.version
import os
from unittest import main, skipUnless, TestCase
+from utils import kernel_version_ge
from bcc import BPF
from netaddr import IPAddress
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
class KeyV4(ct.Structure):
_fields_ = [("prefixlen", ct.c_uint),
("data", ct.c_ubyte * 4)]
from __future__ import print_function
from unittest import main, skipUnless, TestCase
+from utils import kernel_version_ge
from bcc import BPF
import os
-import distutils.version
import ctypes as ct
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
-
@skipUnless(kernel_version_ge(5, 6), "requires kernel >= 5.6")
class TestMapBatch(TestCase):
MAPSIZE = 1024
from __future__ import print_function
from bcc import BPF
-import distutils.version
from unittest import main, skipUnless, TestCase
+from utils import kernel_version_ge
import ctypes as ct
import os
("value_2", ct.c_int)
]
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
@skipUnless(kernel_version_ge(4,11), "requires kernel >= 4.11")
class TestUDST(TestCase):
def test_hash_table(self):
# Licensed under the Apache License, Version 2.0 (the "License")
import os
-import distutils.version
import ctypes as ct
from bcc import BPF
from unittest import main, TestCase, skipUnless
-
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
+from utils import kernel_version_ge
@skipUnless(kernel_version_ge(4,20), "requires kernel >= 4.20")
class TestQueueStack(TestCase):
-
+
def test_stack(self):
text = """
BPF_STACK(stack, u64, 10);
from bcc import BPF
import os
-import distutils.version
import ctypes as ct
import random
import time
import subprocess
from unittest import main, TestCase, skipUnless
-
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
+from utils import kernel_version_ge
class TestRingbuf(TestCase):
@skipUnless(kernel_version_ge(5,8), "requires kernel >= 5.8")
# Licensed under the Apache License, Version 2.0 (the "License")
import bcc
-import distutils.version
import os
import unittest
-from utils import mayFail
+from utils import mayFail, kernel_version_ge
import subprocess
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
@unittest.skipUnless(kernel_version_ge(4,6), "requires kernel >= 4.6")
class TestStackid(unittest.TestCase):
#!/usr/bin/env python
from unittest import main, skipUnless, TestCase
-import distutils.version
+from utils import kernel_version_ge
import os
import subprocess
import sys
leaking_amount = 30000
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
-
def setUpModule():
# Build the memory leaking application.
c_src = 'test_tools_memleak_leaker_app.c'
import os
import re
from unittest import main, skipUnless, TestCase
-from utils import mayFail
+from utils import mayFail, kernel_version_ge
TOOLS_DIR = "../../tools/"
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
@skipUnless(kernel_version_ge(4,1), "requires kernel >= 4.1")
class SmokeTests(TestCase):
# Use this for commands that have a built-in timeout, so they only need
import bcc
import unittest
from time import sleep
-import distutils.version
+from utils import kernel_version_ge
import os
import subprocess
-def kernel_version_ge(major, minor):
- # True if running kernel is >= X.Y
- version = distutils.version.LooseVersion(os.uname()[2]).version
- if version[0] > major:
- return True
- if version[0] < major:
- return False
- if minor and version[1] < minor:
- return False
- return True
-
@unittest.skipUnless(kernel_version_ge(4,7), "requires kernel >= 4.7")
class TestTracepoint(unittest.TestCase):
def test_tracepoint(self):
from pyroute2 import NSPopen
from distutils.spawn import find_executable
import traceback
+import distutils.version
import logging, os, sys
name = list(argv)[0][0]
has_executable(name)
super(NSPopenWithCheck, self).__init__(nsname, *argv, **kwarg)
+
+def kernel_version_ge(major, minor):
+ # True if running kernel is >= X.Y
+ version = distutils.version.LooseVersion(os.uname()[2]).version
+ if version[0] > major:
+ return True
+ if version[0] < major:
+ return False
+ if minor and version[1] < minor:
+ return False
+ return True