mirror of
https://github.com/klaussilveira/gitlist.git
synced 2025-11-16 10:46:05 +01:00
152 lines
5.2 KiB
PHP
152 lines
5.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace GitList\SCM\Diff;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class ParseTest extends TestCase
|
|
{
|
|
public const RAW_DIFF_BLOCK = <<<DIFF
|
|
diff --git a/mm/cma.c b/mm/cma.c
|
|
index c960459..c17751c 100644
|
|
--- a/mm/cma.c
|
|
+++ b/mm/cma.c
|
|
@@ -23,7 +23,6 @@
|
|
# define DEBUG
|
|
#endif
|
|
#endif
|
|
-#define CREATE_TRACE_POINTS
|
|
|
|
#include <linux/memblock.h>
|
|
#include <linux/err.h>
|
|
@@ -33,56 +32,46 @@
|
|
#include <linux/slab.h>
|
|
#include <linux/log2.h>
|
|
#include <linux/cma.h>
|
|
-#include <linux/highmem.h>
|
|
-#include <linux/io.h>
|
|
-#include <trace/events/cma.h>
|
|
|
|
-#include "cma.h"
|
|
+struct cma {
|
|
+ unsigned long base_pfn;
|
|
+ unsigned long count;
|
|
+ unsigned long *bitmap;
|
|
+ unsigned int order_per_bit; /* Order of pages represented by one bit */
|
|
+ struct mutex lock;
|
|
+};
|
|
|
|
-struct cma cma_areas[MAX_CMA_AREAS];
|
|
-unsigned cma_area_count;
|
|
+static struct cma cma_areas[MAX_CMA_AREAS];
|
|
+static unsigned cma_area_count;
|
|
static DEFINE_MUTEX(cma_mutex);
|
|
|
|
-phys_addr_t cma_get_base(const struct cma *cma)
|
|
+phys_addr_t cma_get_base(struct cma *cma)
|
|
{
|
|
return PFN_PHYS(cma->base_pfn);
|
|
}
|
|
|
|
-unsigned long cma_get_size(const struct cma *cma)
|
|
+unsigned long cma_get_size(struct cma *cma)
|
|
{
|
|
return cma->count << PAGE_SHIFT;
|
|
}
|
|
|
|
-static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
|
|
- int align_order)
|
|
+static unsigned long cma_bitmap_aligned_mask(struct cma *cma, int align_order)
|
|
{
|
|
- if (align_order <= cma->order_per_bit)
|
|
- return 0;
|
|
- return (1UL << (align_order - cma->order_per_bit)) - 1;
|
|
+ return (1UL << (align_order >> cma->order_per_bit)) - 1;
|
|
}
|
|
DIFF;
|
|
|
|
public function testIsParsingRawDiffBlock(): void
|
|
{
|
|
$parse = new Parse();
|
|
$files = $parse->fromRawBlock(self::RAW_DIFF_BLOCK);
|
|
|
|
$this->assertCount(1, $files);
|
|
$this->assertEquals('mm/cma.c', $files[0]->getName());
|
|
$this->assertEquals(File::TYPE_NO_CHANGE, $files[0]->getType());
|
|
$this->assertEquals('c960459..c17751c', $files[0]->getIndex());
|
|
$this->assertEquals('a/mm/cma.c', $files[0]->getFrom());
|
|
$this->assertEquals('b/mm/cma.c', $files[0]->getTo());
|
|
$this->assertEquals(13, $files[0]->getAdditions());
|
|
$this->assertEquals(14, $files[0]->getDeletions());
|
|
$this->assertCount(2, $files[0]->getHunks());
|
|
|
|
// First hunk
|
|
$firstHunk = $files[0]->getHunks()[0];
|
|
$this->assertEquals(23, $firstHunk->getOldStart());
|
|
$this->assertEquals(7, $firstHunk->getOldCount());
|
|
$this->assertEquals(23, $firstHunk->getNewStart());
|
|
$this->assertEquals(6, $firstHunk->getNewCount());
|
|
$this->assertEquals('@@ -23,7 +23,6 @@', $firstHunk->getContents());
|
|
$this->assertCount(7, $firstHunk->getLines());
|
|
|
|
// Line 1
|
|
$this->assertEquals(' # define DEBUG', $firstHunk->getLines()[0]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[0]->getType());
|
|
$this->assertEquals(23, $firstHunk->getLines()[0]->getOldNumber());
|
|
|
|
// Line 2
|
|
$this->assertEquals(' #endif', $firstHunk->getLines()[1]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[1]->getType());
|
|
$this->assertEquals(24, $firstHunk->getLines()[1]->getOldNumber());
|
|
|
|
// Line 3
|
|
$this->assertEquals(' #endif', $firstHunk->getLines()[2]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[2]->getType());
|
|
$this->assertEquals(25, $firstHunk->getLines()[2]->getOldNumber());
|
|
|
|
// Line 4
|
|
$this->assertEquals('-#define CREATE_TRACE_POINTS', $firstHunk->getLines()[3]->getContents());
|
|
$this->assertEquals(Line::TYPE_DELETE, $firstHunk->getLines()[3]->getType());
|
|
$this->assertEquals(26, $firstHunk->getLines()[3]->getOldNumber());
|
|
|
|
// Line 5
|
|
$this->assertEquals('', $firstHunk->getLines()[4]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[4]->getType());
|
|
|
|
// Line 6
|
|
$this->assertEquals(' #include <linux/memblock.h>', $firstHunk->getLines()[5]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[5]->getType());
|
|
|
|
// Line 7
|
|
$this->assertEquals(' #include <linux/err.h>', $firstHunk->getLines()[6]->getContents());
|
|
$this->assertEquals(Line::TYPE_NO_CHANGE, $firstHunk->getLines()[6]->getType());
|
|
|
|
// Second hunk
|
|
$secondHunk = $files[0]->getHunks()[1];
|
|
$this->assertEquals(33, $secondHunk->getOldStart());
|
|
$this->assertEquals(56, $secondHunk->getOldCount());
|
|
$this->assertEquals(32, $secondHunk->getNewStart());
|
|
$this->assertEquals(46, $secondHunk->getNewCount());
|
|
$this->assertEquals('@@ -33,56 +32,46 @@', $secondHunk->getContents());
|
|
$this->assertCount(43, $secondHunk->getLines());
|
|
}
|
|
|
|
public function testIsClearingParserAccumulator(): void
|
|
{
|
|
$parse = new Parse();
|
|
$files = $parse->fromRawBlock(self::RAW_DIFF_BLOCK);
|
|
$files = $parse->fromRawBlock(self::RAW_DIFF_BLOCK);
|
|
|
|
$this->assertCount(1, $files);
|
|
}
|
|
|
|
public function testIsIgnoringEmptyRawBlock(): void
|
|
{
|
|
$parse = new Parse();
|
|
$files = $parse->fromRawBlock('');
|
|
$this->assertEmpty($files);
|
|
}
|
|
}
|