File: test_coverup_5.py

package info (click to toggle)
scalene 1.5.51-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,528 kB
  • sloc: cpp: 22,930; python: 13,403; javascript: 11,769; ansic: 817; makefile: 196; sh: 45
file content (55 lines) | stat: -rw-r--r-- 2,126 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# file scalene/scalene_preload.py:15-55
# lines [15, 16, 17, 18, 19, 25, 26, 27, 28, 31, 32, 34, 36, 37, 39, 40, 42, 43, 44, 46, 48, 49, 51, 53, 55]
# branches ['25->26', '25->36', '26->27', '26->34', '31->32', '31->34', '36->37', '36->51', '37->39', '37->55', '42->43', '42->46', '48->49', '48->55', '51->53', '51->55']

import argparse
import os
import sys
from unittest.mock import patch
import pytest
import scalene.scalene_preload

@pytest.fixture
def args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--allocation_sampling_window', type=int, default=1)
    parser.add_argument('--memory', action='store_true')
    return parser.parse_args([])

@pytest.fixture
def clean_environ():
    original_environ = os.environ.copy()
    yield
    os.environ = original_environ

def test_get_preload_environ_darwin_memory(args, clean_environ):
    
    args.memory = True
    with patch.object(sys, 'platform', 'darwin'):
        env = scalene.scalene_preload.ScalenePreload.get_preload_environ(args)
        assert 'DYLD_INSERT_LIBRARIES' in env
        assert 'libscalene.dylib' in env['DYLD_INSERT_LIBRARIES']
        assert env['OBJC_DISABLE_INITIALIZE_FORK_SAFETY'] == 'YES'

def test_get_preload_environ_linux_memory(args, clean_environ):
    
    args.memory = True
    with patch.object(sys, 'platform', 'linux'):
        with patch.dict('os.environ', {'PYTHONMALLOC': 'malloc'}):
            env = scalene.scalene_preload.ScalenePreload.get_preload_environ(args)
            assert 'LD_PRELOAD' in env
            assert 'libscalene.so' in env['LD_PRELOAD']
            assert env['PYTHONMALLOC'] == 'default'

def test_get_preload_environ_linux_no_memory(args, clean_environ):
    
    args.memory = False
    with patch.object(sys, 'platform', 'linux'):
        env = scalene.scalene_preload.ScalenePreload.get_preload_environ(args)
        assert 'LD_PRELOAD' not in env

def test_get_preload_environ_win32(args, clean_environ):
    
    with patch.object(sys, 'platform', 'win32'):
        env = scalene.scalene_preload.ScalenePreload.get_preload_environ(args)
        assert args.memory is False