diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch
new file mode 100644
index 0000000..2646e2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch
@@ -0,0 +1,82 @@
+From 7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819 Mon Sep 17 00:00:00 2001
+From: aekoroglu <ali.erdinc.koroglu@intel.com>
+Date: Fri, 24 Jun 2022 14:12:59 +0300
+Subject: [PATCH] DeprecationWarning invalid escape sequence fix
+
+Upstream-Status: Submitted [https://github.com/tikitu/jsmin/pull/38]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ jsmin/test.py | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/jsmin/test.py b/jsmin/test.py
+index 173ac65..afea4e7 100644
+--- a/jsmin/test.py
++++ b/jsmin/test.py
+@@ -337,8 +337,8 @@ def testImplicitSemicolon3(self):
+         self.assertMinified("return//comment...\r\na", "return\na")
+ 
+     def testSingleComment2(self):
+-        self.assertMinified('x.replace(/\//, "_")// slash to underscore',
+-                'x.replace(/\//,"_")')
++        self.assertMinified('x.replace(/\\//, "_")// slash to underscore',
++                'x.replace(/\\//,"_")')
+ 
+     def testSlashesNearComments(self):
+         original = '''
+@@ -383,8 +383,8 @@ def test_space_in_regex(self):
+         self.assertMinified(original, original)
+ 
+     def test_brackets_around_slashed_regex(self):
+-        original = 'function a() { /\//.test("a") }'
+-        expected = 'function a(){/\//.test("a")}'
++        original = 'function a() { /\\//.test("a") }'
++        expected = 'function a(){/\\//.test("a")}'
+         self.assertMinified(original, expected)
+ 
+     def test_angular_1(self):
+@@ -455,12 +455,12 @@ def testBackticksTagged(self):
+     def test_issue_bitbucket_16(self):
+         original = """
+             f = function() {
+-                return /DataTree\/(.*)\//.exec(this._url)[1];
++                return /DataTree\\/(.*)\\//.exec(this._url)[1];
+             }
+         """
+         self.assertMinified(
+             original,
+-            'f=function(){return /DataTree\/(.*)\//.exec(this._url)[1];}')
++            'f=function(){return /DataTree\\/(.*)\\//.exec(this._url)[1];}')
+ 
+     def test_issue_bitbucket_17(self):
+         original = "// hi\n/^(get|post|head|put)$/i.test('POST')"
+@@ -470,7 +470,7 @@ def test_issue_bitbucket_17(self):
+     def test_issue_6(self):
+         original = '''
+             respond.regex = {
+-                comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
++                comments: /\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//gi,
+                 urls: 'whatever'
+             };
+         '''
+@@ -548,16 +548,16 @@ def test_issue_9_multi_comments(self):
+ 
+     def test_issue_12_re_nl_if(self):
+         original = '''
+-            var re = /\d{4}/
++            var re = /\\d{4}/
+             if (1) { console.log(2); }'''
+         self.assertMinified(
+-            original, 'var re=/\d{4}/\nif(1){console.log(2);}')
++            original, 'var re=/\\d{4}/\nif(1){console.log(2);}')
+ 
+     def test_issue_12_re_nl_other(self):
+         original = '''
+-            var re = /\d{4}/
++            var re = /\\d{4}/
+             g = 10'''
+-        self.assertMinified(original , 'var re=/\d{4}/\ng=10')
++        self.assertMinified(original , 'var re=/\\d{4}/\ng=10')
+ 
+     def test_preserve_copyright(self):
+         original = '''
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
index cbcfffd..586608d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
@@ -1,3 +1,2 @@
 #!/bin/sh
-
-python3 test.py
+pytest -vv test.py | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
