Skip to content

Commit

Permalink
Added new cases for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Hidanio committed Sep 22, 2023
1 parent 1d61cac commit d0c8e24
Show file tree
Hide file tree
Showing 21 changed files with 275 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@ok
KPHP_ENABLE_MODULITE=1
<?php
#ifndef KPHP
require_once 'kphp_tester_include.php';
#endif

$_ = \Messages011\MessagesLogger011::log();
\Messages011\MessagesLogger011::create();
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Logs011;

abstract class BaseLog011 {
protected static function logAction(): bool {
return true;
}

protected static function createLog(): void {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: "@messages011"
description: ""
namespace: "Messages011\\"

export:
- "MessagesLogger011"

force-internal:

require:
- "\\Logs011\\BaseLog011"
- "\\Logs011\\BaseLog011::createLog()"
- "\\Logs011\\BaseLog011::logAction()"

allow-internal-access:
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Messages011;

use Logs011\BaseLog011;

class MessagesLogger011 extends BaseLog011 {

public static function create(): void {
parent::createLog();
}

public static function log(): bool {
return parent::logAction();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@ok
KPHP_ENABLE_MODULITE=1
KPHP_COMPOSER_ROOT={dir}
<?php
#ifndef KPHP
require_once 'kphp_tester_include.php';
#endif
require_once __DIR__ . '/Printer012/Printer012.php';

\Printer012\Printer012::print();
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace BasePrinter012;

use Vk\TestSrt\SomeStr;

class BasePrinter012 {
final public static function basePrint(): void {
$r1 =new SomeStr();
echo "BasePrint\n";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "vk/strings",
"version": "0.0.1",
"type": "library",
"autoload": {
"psr-4": {
"Vk\\TestSrt\\": "src/"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

namespace Vk\TestSrt;

class SomeStr {
public static function concatStr(string $s1, string $s2):string {
return $s1 . $s2;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "@printer"
description: ""
namespace: "Printer012\\"

# "Public API" of the modulite: classes, functions, constants, etc.
# Symbols not listed here will be internal.
export:
- "Printer012"

# Class members to exclude, they override "export".
force-internal:

# Dependencies: other modulites, global classes, defines, etc.
require:
- "\\BasePrinter012\\BasePrinter012"

# Granting partial access to internal symbols, "as an exception".
allow-internal-access:
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Printer012;

use BasePrinter012\BasePrinter012;

class Printer012 extends BasePrinter012 {

public static function print(): void {
self::basePrint();
echo "print\n";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "vk/str-strings",
"type": "library",
"license": "MIT",
"autoload": {
"psr-4": {
"BasePrinter012\\": "./BasePrinter012",
"Printer012\\": "./Printer012",
"Vk\\TestSrt\\": "./packages/vk-strings/src"
}
},
"require": {},
"repositories": [
{
"type": "path",
"url": "./packages/vk-strings"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@ok
KPHP_ENABLE_MODULITE=1
<?php
#ifndef KPHP
require_once 'kphp_tester_include.php';
#endif

\Printer013\Printer013::print();
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

namespace BasePrinter013;

class AppendStr013 {
static public function concatStr(string $s1, string $s2):string {
return $s1 . $s2;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace BasePrinter013;

class BasePrinter013 {
final public static function printAppend(): void {
$someClass = new AppendStr013();
echo "printAppend";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "@printer"
description: ""
namespace: "Printer013\\"

# "Public API" of the modulite: classes, functions, constants, etc.
# Symbols not listed here will be internal.
export:
- "Printer013"

# Class members to exclude, they override "export".
force-internal:

# Dependencies: other modulites, global classes, defines, etc.
require:
- "\\BasePrinter013\\BasePrinter013"

# Granting partial access to internal symbols, "as an exception".
allow-internal-access:
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Printer013;

use BasePrinter013\BasePrinter013;

class Printer013 extends BasePrinter013 {

public static function print(): void {
self::printAppend();
echo "print-printAppend";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@kphp_should_fail
KPHP_ENABLE_MODULITE=1
/restricted to call Logs100\\BaseLog100:createLog\(\), it's not required by @messages100/
/restricted to call Logs100\\BaseLog100::logAction\(\), it's not required by @messages100/
<?php
#ifndef KPHP
require_once 'kphp_tester_include.php';
#endif

$_ = \Messages100\MessagesLogger100::log();
// ^^^
// error: [modulite] restricted to call Logs100\BaseLog100::logAction(), it's not required by @messages100
echo <error descr="[modulite] restricted to call Logs100\BaseLog100::logAction(), it's not required by @messages100">logAction</error>();
\Messages100\MessagesLogger100::create();
// ^^^^^^
// error: [modulite] restricted to call Logs100\BaseLog100::createLog(), it's not required by @messages100
echo <error descr="[modulite] restricted to call Logs100\BaseLog100::createLog(), it's not required by @messages100">createLog</error>();
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Logs100;

abstract class BaseLog100 {
protected static function logAction(): bool {
return true;
}

protected static function createLog(): void {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: "@messages100"
description: ""
namespace: "Messages100\\"

export:
- "MessagesLogger100"

force-internal:

require:
- "\\Logs100\\BaseLog100"

allow-internal-access:
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Messages100;

use Logs100\BaseLog100;

class MessagesLogger100 extends BaseLog100 {

public static function create(): void {
parent::createLog();
}

public static function log(): bool {
return parent::logAction();
}
}
24 changes: 16 additions & 8 deletions src/test/kotlin/com/vk/modulite/tests/KphpGoldenTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,22 @@ import com.vk.modulite.infrastructure.ModuliteInspectionTestBase

class KphpGoldenTests : ModuliteInspectionTestBase() {
fun `test 001_simple_yaml_project`() = runFixture("kphp_golden/001_simple_yaml_project")
fun `test 002_ok_require_submod`() = runFixture("kphp_golden/002_ok_require_submod")
fun `test 003_allow_internal`() = runFixture("kphp_golden/003_allow_internal")
fun `test 004_instance_methods`() = runFixture("kphp_golden/004_instance_methods")
fun `test 005_inheritance`() = runFixture("kphp_golden/005_inheritance")
fun `test 006_known_bugs`() = runFixture("kphp_golden/006_known_bugs")
fun `test 002_ok_require_submod`() = runFixture("kphp_golden/002_ok_require_submod")
fun `test 003_allow_internal`() = runFixture("kphp_golden/003_allow_internal")
fun `test 004_instance_methods`() = runFixture("kphp_golden/004_instance_methods")
fun `test 005_inheritance`() = runFixture("kphp_golden/005_inheritance")
fun `test 006_known_bugs`() = runFixture("kphp_golden/006_known_bugs")

// На потом
// fun `test 007_composer_ok`() = runFixture("kphp_golden/007_composer_ok")
fun `test 008_mod_generics`() = runFixture("kphp_golden/008_mod_generics")
fun `test 009_mod_magic_m`() = runFixture("kphp_golden/009_mod_magic_m")
//fun `test 007_composer_ok`() = runFixture("kphp_golden/007_composer_ok")
fun `test 008_mod_generics`() = runFixture("kphp_golden/008_mod_generics")
fun `test 009_mod_magic_m`() = runFixture("kphp_golden/009_mod_magic_m")
fun `test 010_mod_unreachable`() = runFixture("kphp_golden/010_mod_unreachable")
fun `test 011_late_static_bindings`() = runFixture("kphp_golden/011_late_static_bindings")
fun `test 012_package_not_required_in_derived_class`() = runFixture("kphp_golden/012_package_not_required_in_derived_class")

fun `test 013_inheritance_calling_class_inside_parent`() =
runFixture("kphp_golden/013_inheritance_calling_class_inside_parent")

fun `test 100_wrong_static_bindings`() = runFixture("kphp_golden/100_wrong_static_bindings")
}

0 comments on commit d0c8e24

Please sign in to comment.