-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSharedMemoryUtilsTest.php
More file actions
98 lines (82 loc) · 2.65 KB
/
SharedMemoryUtilsTest.php
File metadata and controls
98 lines (82 loc) · 2.65 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php declare(strict_types=1);
namespace Tests\SharedData;
/**
* 测试 php-shared-data\SharedData\SharedMemoryUtils
*
* @author fdipzone
*/
final class SharedMemoryUtilsTest extends \Tests\SharedData\AbstractSharedMemoryTestCase
{
/**
* @covers \SharedData\SharedMemoryUtils::createIpcFile
*/
public function testCreateIpcFile()
{
// 测试文件
$ipc_file = '/tmp/sm-key-test.ipc';
// IPC 文件不存在
$created = \SharedData\SharedMemoryUtils::createIpcFile($ipc_file);
$this->assertTrue($created);
// IPC 文件已存在
$created = \SharedData\SharedMemoryUtils::createIpcFile($ipc_file);
$this->assertFalse($created);
// 删除测试文件
if(file_exists($ipc_file))
{
unlink($ipc_file);
}
}
/**
* @covers \SharedData\SharedMemoryUtils::removeIpcFile
*/
public function testRemoveIpcFile()
{
// 测试文件
$ipc_file = '/tmp/sm-key-test.ipc';
// 预先创建 IPC 文件
file_put_contents($ipc_file, '');
// IPC 文件已存在
$removed = \SharedData\SharedMemoryUtils::removeIpcFile($ipc_file);
$this->assertTrue($removed);
// IPC 文件不存在
$removed = \SharedData\SharedMemoryUtils::removeIpcFile($ipc_file);
$this->assertFalse($removed);
}
/**
* @covers \SharedData\SharedMemoryUtils::semId
*/
public function testSemId()
{
$shared_key = $this->generateSharedKey();
$sem_ipc_file = '/tmp/'.$shared_key.'-sem.ipc';
$project_id = 's';
// 预先创建 IPC 文件
file_put_contents($sem_ipc_file, '');
$sem_id = \SharedData\SharedMemoryUtils::semId($sem_ipc_file, $project_id);
$this->assertEquals('sysvsem', get_resource_type($sem_id));
}
/**
* @covers \SharedData\SharedMemoryUtils::semId
*/
public function testSemIdFalse()
{
$shared_key = $this->generateSharedKey();
$sem_ipc_file = '/tmp/'.$shared_key.'-sem.ipc';
$project_id = 's';
$sem_id = \SharedData\SharedMemoryUtils::semId($sem_ipc_file, $project_id);
$this->assertFalse($sem_id);
}
/**
* @covers \SharedData\SharedMemoryUtils::shmKey
*/
public function testShmKey()
{
$shared_key = $this->generateSharedKey();
$shm_ipc_file = '/tmp/'.$shared_key.'.ipc';
$project_id = 'm';
// 预先创建 IPC 文件
file_put_contents($shm_ipc_file, '');
$shm_key = \SharedData\SharedMemoryUtils::shmKey($shm_ipc_file, $project_id);
$this->assertTrue($shm_key>0);
}
}